第14讲__完整电话薄.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14讲__完整电话薄

第14讲 完整电话薄 为了完善电话簿的功能,需要对例8-2进行改进: (1)在界面右侧添加列表视图控件,显示某一分组下所有人员的姓名和电话号码 (2)在列表视图控件中添加右键菜单,以修改相应数据。 本讲主要内容 1. 列表视图控件 2. 右键菜单 1. 列表视图控件 列表视图控件区别于列表框控件,可以用来显示和管理一系列子项,每个子项可以包含一个包含在图像列表中的图标,列表视图控件允许以多种方式显示子项。 1. 列表视图控件 【例8-3】 完整电话薄 该例能够在列表视图中显示人员的姓名和电话号码。 1. 列表视图控件 操作步骤: 在例8-2的基础上,进行如下操作。 (1)在ResourceView视图中,添加列表视图控件,ID修改为IDC_LIST,并将properties中Styles选项卡中View选项修改为Report,如图所示。 1. 列表视图控件 (2)打开ClassWizard,在Member Variables选项卡中为IDC_LIST添加Control类型关联变量m_listPhone。 1. 列表视图控件 (3)在OnInitDialog()函数添加如下代码: BOOL CPhoneDlg::OnInitDialog() { …… m_treePhone.SetItemData(h3,(DWORD)pString); m_listPhone.InsertColumn(0,姓名,LVCFMT_LEFT,100); m_listPhone.InsertColumn(1,电话号码,LVCFMT_LEFT,120); m_listPhone.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); return TRUE; } 1. 列表视图控件 (4)打开ClassWizard,在Message Maps选项卡中为IDC_TREE添加TVN_SELCHANGED消息响应函数OnSelchangedTree(),该函数在树中被选中节点发生变化时调用。 1. 列表视图控件 (5)在OnSelchangedTree()函数中添加如下代码: void CPhoneDlg::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; HTREEITEM selItem = m_treePhone.GetSelectedItem(); //获得树中选中节点 if(selItem == m_treePhone.GetRootItem()) //如果没有选中节点,返回 return; DWORD m = m_treePhone.GetItemData(selItem); //获得选中节点关联数据 if(m == NULL) //如果为空,是分组节点 { refreshList(selItem); //刷新列表视图中的数据 } *pResult = 0; } 1. 列表视图控件 void CPhoneDlg::refreshList(HTREEITEM parent) { m_listPhone.DeleteAllItems(); //删除原有数据 int index = 0; //遍历获得该分组节点下的所有子节点 HTREEITEM child = m_treePhone.GetChildItem(parent); while (child != NULL) { DWORD n = m_treePhone.GetItemData(child); CString *pString = (CString*)n; //得到人员节点中的关联电话号码 //在列表视图中添加一项 m_listPhone.InsertItem(index,m_treePhone.GetItemText(child)); m_listPhone.SetItemText(index,1,*pString); //在列表视图中设置一子项 index++; child = m_treePhone.GetNextSiblingItem(child); //得到下一个兄弟节点 } } 1. 列表视图控件 (6)为了使添加、删除人员后列表视图中数据与树中节点一致,需要修改OnAdd()和OnDelete()函数。 void CPhoneDlg::OnAdd() { ……

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档