zoukankan      html  css  js  c++  java
  • 列表控件基本操作

    1、列表样式设置

     1 LONG lStyle;
     2 lStyle = GetWindowLong(m_configList.m_hWnd, GWL_STYLE);
     3 lStyle &= ~LVS_TYPEMASK;
     4 lStyle |= LVS_REPORT;
     5 SetWindowLong(m_configList.m_hWnd, GWL_STYLE, lStyle);
     6 
     7 DWORD dwStyle = m_configList.GetExtendedStyle();
     8 dwStyle |= LVS_EX_FULLROWSELECT;//整行选中
     9 dwStyle |= LVS_EX_GRIDLINES;//网格线
    10 dwStyle |= LVS_EX_DOUBLEBUFFER;
    11 //dwStyle |= LVS_EX_CHECKBOXES;//每一行最前面带个复选框
    12 m_configList.SetExtendedStyle(dwStyle);

    2、设置列表的列名

    1 m_configList.InsertColumn(0, "列1", LVCFMT_CENTER, 100, 0);
    2 m_configList.InsertColumn(1, "列2", LVCFMT_CENTER, 100, 1);
    3 m_configList.InsertColumn(2, "列3", LVCFMT_CENTER, 120, 2);
    4 m_configList.InsertColumn(3, "列4", LVCFMT_CENTER, 100, 3);

    3、插入数据

    m_configList.InsertItem(0,"");//插入行
    m_configList.SetItemText(0,1,"name");//设置第2列

    4、得到单击的listCtrl的行列号

     1 void CTestDlg::OnClickList(NMHDR* pNMHDR,LRESULT* pResult)
     2 {
     3     //方法1
     4     DWORD dwPos = GetMessagePos();
     5     CPoint point(LOWORD(dwPos),HIWORD(dwPos));
     6     m_configList.ScreenToClient(&point);
     7     LVHITTESTINFO lvinfo;
     8     lvinfo.pt = point;
     9     lvinfo.flags = LVHT_ABOVE;
    10     
    11     int nItem = m_list.SubItemHitTest(&lvinfo);
    12     if(nItem != -1)
    13     {
    14         lvinfo.iItem //
    15         lvinfo.iSubItem //
    16     }
    17     //方法2
    18     NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    19     if(pNMListView->iItem != -1)
    20     {
    21         pNMListView->iItem //
    22         pNMListView->iSubItem //
    23     }
    24 }

    5、选中和取消选中某一行

    1 int nIndex = 0;
    2 m_configList.SetItemState(nIndex,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);//选中
    3 m_configList.SetItemState(nIndex,0,LVIS_SELECTED|LVIS_FOCUSED);

    6、得到listCtrl中所有选中行的序号

     1  2 CString str;
     3 for(int i = 0;i < m_configList.GetITemCount();++i)
     4 {
     5     if(m_configList.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED)
     6     {}
     7 }
     8  9 POSITION pos = m_configList.GetFirstSelectedItemPosition();
    10 if(pos == NULL)
    11 {}
    12 else
    13 {
    14     while(pos)
    15     {
    16         int nItem = m_configList.GetNextSelectedItem(pos);
    17     }
    18 }

    参考

    https://blog.csdn.net/zq4132/article/details/54971717

  • 相关阅读:
    Xcode-调试断点不能停在代码区终极解决方案
    iOS-修改Status Bar
    iOS-appStore发布流程
    iOS-Debug调试
    iOS-项目搭建
    iOS-UIButton-设置button标题和图片位置
    iOS-布局-Masonry-优先级
    intent 传参数
    五大布局
    execute、executeQuery和executeUpdate之间的区别
  • 原文地址:https://www.cnblogs.com/huangsitao/p/10871763.html
Copyright © 2011-2022 走看看