广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    VC/MFC 如何使列表控件(CListCtrl)可编辑

    来源:网络收集  点击:  时间:2024-05-20
    【导读】:
    我们在使用VC进行列表控编程中,常常需要在用户点击列表控件中某个单元格时,对单元格内容进行修改,就像EXCEL一样。那么,这个功能如何实现呢?大概过程如下:在对话框加入列表控件、要显示在列表中的控件(比如CComboBox控件,这个控件初始设置为影藏)、然后在列表控件的单击事件中将编辑控件显示在单元格中。具体方法如下:工具/原料more电脑一台vc++ 6.0或者更高版本方法/步骤1/7分步阅读

    一、新建一个基于对话框的工程文件,在对话框中添加ListCtrl控件,设置控件属性为报告,如下图:

    2/7

    二、在对话框中为列表控件添加变量:如下图:

    3/7

    三、在对话框的OnInitDialog初始化函数中添加如下代码(对列表控件进行初始化):

    m_lstcoudata.InsertColumn(0,课程名称,LVCFMT_CENTER,100);

    m_lstcoudata.InsertColumn(1,是否主科,LVCFMT_CENTER,100);

    m_lstcoudata.InsertColumn(2,周课时,LVCFMT_CENTER,100);

    m_lstcoudata.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

    m_lstcoudata.SetBkColor(RGB(172,199,235));

    m_lstcoudata.SetRowHeigt(40);

    m_lstcoudata.SetFontHW(15,10);

    GRADE *pgrd=CArrangeCourseApp::Adu .GetGrdPointer()-pnext;

    for(int n=0;n10;n++)

    m_lstcoudata.InsertItem(n,);

    //ect rc;

    m_lstcoudata.GetClientRect(rc);

    m_lstcoudata.SetColumnWidth(0,rc.Width()/2);

    m_lstcoudata.SetColumnWidth(1,rc.Width()/4);

    m_lstcoudata.SetColumnWidth(2,rc.Width()/4);

    4/7

    四、下面我们要在鼠标对列表控件的单击事件中,将需要显示的控件移动到鼠标单击的单元格中。代码如下:

    NM_LISTVIEW* pNMListView=(NM_LISTVIEW*)pNMHDR;

    CRect rc;

    if(pNMListView-iItem==-1)return;

    m_row=pNMListView-iItem;//m_row为被选中行的行序号(int类型成员变量)

    m_column=pNMListView-iSubItem;//m_column为被选中行的列序号(int类型成员变量)

    if(m_column!=2)return;

    //if(m_column0)return;

    UpdateData(TRUE);

    m_lstcoudata.GetSubItemRect(pNMListView-iItem, pNMListView-iSubItem,LVIR_LABEL,rc);//取得子项的矩

    rc.left+=150;

    rc.right+=150;

    rc.bottom+=100;

    m_cmbcnt.ShowWindow(SW_SHOW);

    m_cmbcnt.MoveWindow(rc);

    m_cmbcnt.SetFocus();

    *pResult = 0;

    5/7

    五、(注意)要显示的控件和列表控件的ID号必须相连,并且列表ID大于显示控件ID,处理方法为:在对话框中依次按下“CTRL+D”组合键,如图:按照顺序依次点击相应控件重新对控件进行排序。

    6/7

    六、编译、调试,弹出窗口如下图:

    7/7

    七、点击单元格,弹出要显示的控件,如下图:

    注意事项

    (注意)要显示的控件和列表控件的ID号必须相连,并且列表ID大于显示控件ID,处理方法请参考第五步

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_808179.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 15:28:41  耗时:0.027
    0.0275s