VC/MFC 如何使列表控件(CListCtrl)可编辑
来源:网络收集 点击: 时间:2024-05-20一、新建一个基于对话框的工程文件,在对话框中添加ListCtrl控件,设置控件属性为报告,如下图:

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

三、在对话框的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”组合键,如图:按照顺序依次点击相应控件重新对控件进行排序。

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

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

(注意)要显示的控件和列表控件的ID号必须相连,并且列表ID大于显示控件ID,处理方法请参考第五步
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_808179.html