MFC CListCtrl的学习
来源:互联网 发布:windows 2008 r2 安装 编辑:程序博客网 时间:2024/06/05 02:13
图标视图
每个项显示为一个大型图标(32 x 32像素)与标签在其下方。 用户可以通过拖动项添加到列表视图窗口中的任意位置。
小图标视图
每个项显示为一个小图标(16 x 16像素)与标签在右侧。 用户可以通过拖动项添加到列表视图窗口中的任意位置。
列表视图
每个项显示为带有标签的一个小图标在右侧。 项目在列排列,则无法拖到列表视图窗口的任何位置。
报告视图
每个项目中列都显示行,当附加信息排列右侧。 最左侧的列包含小图标和标签,因此,随后的列包含子项如指定由应用程序。
1.CListCtrl控件的添加:
View属性设为Report,即为报表风格,Single Selection属性设为True
//添加CListCtrl类型的控件变量m_listCListCtrl m_list;
//参数rect为列表视图控件的位置和尺寸CRect rect;//获取编程语言列表视图控件的位置和大小m_list.GetClientRect(&rect);//为列表视图控件添加全行选中和栅格风格m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);//为列表视图控件添加三列m_list.InsertColumn(0, _T("序号"), LVCFMT_LEFT, rect.Width()/5, 0); m_list.InsertColumn(1, _T("参数名"), LVCFMT_LEFT, rect.Width()/5*2, 1); m_list.InsertColumn(2, _T("参数值"), LVCFMT_LEFT, rect.Width()/5*2, 2);//在列表视图控件中插入列表项,并设置列表子项文本m_list.InsertItem(0, _T("1")); m_list.SetItemText(0, 1, _T("1")); m_list.SetItemText(1, 2, _T("1"));
2.获得CListCtrl控件某行某列的值
int GetItemText( int nItem, int nSubItem, LPTSTR lpszText, int nLen ) const; CString GetItemText( int nItem, //行 The index of the item whose text is to be retrieved int nSubItem //列 Specifies the subitem whose text is to be retrieved.) const;
CString strVal = _T("");strVal = m_list.GetItemText(0, 2);
3.双击编辑CListCtrl中的数据
第一步:添加一个edit控件任意位置,并关联一个变量如:m_edit;,在OnInitDialog()函数中写入 m_edit.ShowWindow(SW_HIDE),作用为初始时将编辑框隐藏
第二步:添加一个CListCtrl控件,关键一个变量如:m_list;然后响应该控件的NM_DBLCLK消息,也就是双击事件处理消息
第三部:在双击事件处理函数中写入:
void CPosParaSettingDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here NM_LISTVIEW* pNMListView=(NM_LISTVIEW*)pNMHDR; CRect rc; m_Row = pNMListView->iItem;//获得选中的行 m_Col = pNMListView->iSubItem;//获得选中列 if (pNMListView->iSubItem != 0) //如果选择的是子项; { m_list.GetSubItemRect(m_Row,m_Col,LVIR_LABEL,rc);//获得子项的RECT; m_edit.SetParent(&m_list);//转换坐标为列表框中的坐标 m_edit.MoveWindow(rc);//移动Edit到RECT坐在的位置; m_edit.SetWindowText(m_list.GetItemText(m_Row,m_Col));//将该子项中的值放在Edit控件中; m_edit.ShowWindow(SW_SHOW);//显示Edit控件; m_edit.SetFocus();//设置Edit焦点 m_edit.ShowCaret();//显示光标 m_edit.SetSel(-1);//将光标移动到最后 } *pResult = 0;}
第四部:响应之前创建的那个edit的EN_KILLFOCUS消息,也就是失去编辑框焦点时的消息处理,此时应该把edit中的数据写到之前用户所点击的位置中,在该消息的处理函数中写入:
void CPosParaSettingDlg::OnKillfocusEdit() { // TODO: Add your control notification handler code here CString tem; m_edit.GetWindowText(tem); //得到用户输入的新的内容 m_list.SetItemText(m_Row,m_Col,tem); //设置编辑框的新内容 m_edit.ShowWindow(SW_HIDE); //应藏编辑框}
现在你所双击的CListCtrl中的内容就会被更新了
0 0
- MFC CListCtrl的学习
- MFC CListCtrl的用法
- MFC CListCtrl 的使用
- MFC CListCtrl的用法
- MFC CListCtrl的用法
- MFC CListCtrl的用法
- MFC CListCtrl的使用说明
- MFC CListCtrl的方法
- MFC 的CListCtrl 类
- MFC中CListCtrl的使用
- mfc的CListCtrl关于InsertItem
- MFC 中 CListCtrl 的使用方法
- MFC学习记录 3.CListCtrl与CImageList
- MFC学习记录 4.CListCtrl续
- MFC CListCtrl
- MFC--CListCtrl
- [MFC] Clistctrl
- MFC的CListCtrl的使用与技巧
- 面试笔记2
- Eclipse常用快捷键及技巧总结
- Android 开发规范
- 二分匹配_HDU_2063
- 9 Portuguese
- MFC CListCtrl的学习
- applicationContext 四种数据源获取方式
- Asp.net操作Excel(终极方法NPOI)
- 《TCP/IP详解卷1:协议》第11章 UDP:用户数据报协议-读书笔记
- 容器collection方法
- Korean
- P122.15
- 新版Airplayer--新功能介绍
- 【WP本地化】超详细的WP应用名称和Tile名称本地化