讲非模态与通用对话框.pptVIP

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

第15讲 非模态对话框与通用对话框 继续修改电话薄程序,能够实现双击树中人员节点项,通过调用非模态对话框显示电话号码和姓名等信息 。 本讲主要内容 1. 非模态对话框 2. 通用对话框 1. 非模态对话框 对话框有两种类型:模态对话框和非模态对话框,在本节之前所有程序中的对话框都是模态对话框,都是通过DoModal()函数显示的,其特点是在对话框关闭之前,用户不能对该对话框所在程序的其他窗口进行操作。 非模态对话框与之相反,当对话框尚未关闭时,用户仍然可以对该应用程序的其他窗口进行操作。 1. 非模态对话框 操作步骤: (1)打开Phone工程,在ClassWizard的Message Maps中为IDC_TREE添加NM_DBLCLK消息响应函数OnDblclkTree()。 1. 非模态对话框 (2)在ResourceView视图中,新建一个对话框,修改ID为IDD_SHOW_DIALOG,界面布局如下图所示,与CAddDlg和CModifyDlg类似。 1. 非模态对话框 (3)为对话框添加新类CShowDlg,并为两个文本编辑框分别添加CString类型的关联变量m_strName和m_strNumber。 1. 非模态对话框 (4)对CShowDlg添加SetValue()函数,其定义为: void CShowDlg::SetValue(CString name, CString number) { m_strName = name; m_strNumber = number; } 1. 非模态对话框 (5)重载OnCancel函数,并修改为: void CShowDlg ::OnCancel() { DestroyWindow(); } 1. 非模态对话框 (6)打开ClassWizard,在Message Maps中为CShowDlg添加PostNcDestroy消息响应函数,并修改为: void CShowDlg::PostNcDestroy() { CDialog::PostNcDestroy(); delete this; } 1. 非模态对话框 (7)完成CPhoneDlg::OnDblclkTree()函数: void CPhoneDlg::OnDblclkTree(NMHDR* pNMHDR, LRESULT* pResult) { //获得双击节点 HTREEITEM selItem = m_treePhone.GetSelectedItem(); if(selItem) { //获得节点名称和关联数据 CString name = m_treePhone.GetItemText(selItem); CString *number= (CString *)m_treePhone.GetItemData(selItem); //如果关联数据不为空,则是人员节点 if(number != NULL) { //非模态显示对话框 CShowDlg *pDlg = new CShowDlg(); pDlg-SetValue(name,*number); pDlg-Create(IDD_SHOW_DIALOG,this); pDlg-ShowWindow(SW_SHOW); } } *pResult = 0; } 1. 非模态对话框 (8)编译、链接、运行程序。 2. 通用对话框 Windows系统提供了一组标准用户界面的对话框,如文件对话框、颜色对话框和字体对话框等,这些被称为通用对话框。MFC为通用对话框提供了相应的类。 2. 通用对话框 1. CFileDialog类 CFileDialog类封装了文件打开和保存的对话框的功能,下图是一个标准的文件对话框,打开和保存文件共用同一对话框。 2. 通用对话框 文件对话框的创建过程与模态对话框类似:首先调用构造函数创建一个CFileDialog对象,然后调用DoModal()函数来显示对话框,当用户完成对话框的操作后自动关闭对话框并返回相应信息。 2. 通用对话框 【例8-4】 显示文件对话框 操作步骤: (1)新建工程FileDialog,删除系统自动生成的静态文本控件,将“确定”按钮的Caption修改为“文件对话框”。 2. 通用对话框 (2)添加OnOK响应函数,并在其中添加如下代码: void CFileDialogDlg::OnOK() { CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROM

文档评论(0)

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

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

1亿VIP精品文档

相关文档