zoukankan      html  css  js  c++  java
  • MFC中的CListControl控件

    一直想要这种效果,无奈刚开始用了cListbox控件,不知道怎么生成背景的边框,找了好久资料,突然发现好像控件用错了。

    用CListControl控件实现图中效果,超级开心~

    实现过程:

    添加一个List Control控件,View属性设为Report,即为报表风格,Single Selection属性设为True

    在OnInitDialog()函数中

    CRect rect;   
    
    m_listControl.GetClientRect(&rect); 
    m_listControl.InsertColumn( 0, _T("PDF->图片文件"), LVCFMT_LEFT, rect.Width(),0);//插入列

    在需要循环调用的函数中,添加内容:

     m_listControl.SetExtendedStyle(m_listControl.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); // 为列表视图控件添加全行选中和栅格风格
     m_listControl.InsertItem(j, strTemp+_T("\")+arr[j]);//插入行

    实现选中行变化响应函数

    void CUighurRecognitionDlg::OnLvnItemchangedList2(NMHDR *pNMHDR, LRESULT *pResult)
    {
        LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
        NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
        // TODO: 在此添加控件通知处理程序代码
        //选中项变化时候,函数会响应多次,添加if中判断条件,使得选中项变化时只响应一次
        if   ((pNMListView-> uChanged&LVIF_STATE)&&(pNMListView-> uNewState& LVIS_SELECTED)&&!(pNMListView->uOldState & LVIS_FOCUSED)){
            
         POSITION ps;
         int nIndex;
         ps=m_listControl.GetFirstSelectedItemPosition();
         nIndex=m_listControl.GetNextSelectedItem(ps);
          m_listControl.SetItemState(nIndex,LVS_EX_FULLROWSELECT,LVS_EX_FULLROWSELECT);
     
         CString str;
     
         str=str+m_listControl.GetItemText(nIndex,0);//第一个参数是行数,第二个参数是列数,此处只有一列,所以为0
         //SetDlgItemText(IDC_EDIT1,str);
        // MessageBox(str);
        
        }
         
     //SetDlgItemText(IDC_EDIT_IP,str);
        *pResult = 0;
    }
  • 相关阅读:
    Codeforces Round #564(div2)
    714
    1471
    UVa 11134
    UVa 1152 -4 Values whose Sum is 0—[哈希表实现]
    UVa 1374
    UVA 1343
    UVa 12325
    Yet Another Number Sequence——[矩阵快速幂]
    River Hopscotch-[二分查找、贪心]
  • 原文地址:https://www.cnblogs.com/deerfig/p/7880319.html
Copyright © 2011-2022 走看看