1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vc7文档

* Visual C++程序设计 东北大学 陈东明 * 第7章 对话框和控件 对话框是实现人机交互的重要组成部分,它的使用非常普遍。 必须熟练掌握对话框的创建和使用方法。 * * 1、消息对话框 int MessageBox(HWND,LPCTSTR,LPCTSTR,UINT); 参数1:父窗口句柄 参数2:信息字符串 参数3:对话框标题 参数4:对话框风格(可组合)。 消息对话框是最简单的一种对话框,它不需要创建对话框资源。在只需要提示信息而没有其它复杂的处理时使用消息对话框非常方便。 * * 2、一般对话框的创建和使用流程 创建对话框资源 创建与对话框资源相关联的对话框类的派生类 创建有关控件的消息响应 创建与控件相关联的变量 在程序中创建对话框派生类对象 调用DoModal( )或Create( )显示对话框 一般注意:对话框风格的统一:命名,标识号定义,背景色,文本颜色,控件风格,语言统一,按钮设置。 3、创建对话框资源: 创建新对话框,添加控件 打开已有的对话框,修改 用Test按扭进行测试 * * 4、创建对话框类 CDialog, CPropertyPage, CFileDialog等类与资源关联。 这里,MFC ClassWizard十分重要: Message Maps: 消息映射 Member Variables: 成员变量 技巧:如果ClassView中类信息丢失,那么退出工程删除工程目录下的.clw文件,重新打开工程,进入ClassWizard出现对话框,选Add All,此时又生成了类信息。 Cdialog有四个基本函数: 1)OnInitDialog( ) 是虚函数,用于响应WM_INITDIALOG消息,在对话框显示之前调用,它经常被重载以完成初始化操作。 2)DoModal( ) 激活模式对话框 * * 3)OnOK( ) 是虚函数,用户单击ID为IDOK的按钮时调用,进行数据交换和验证,更新变量。 若是无模式对话框,则在其中调用DestroyWindow( )来删除对话框。 千万不要调用基类中的该函数,因为基类中该函数调用EndDialog( )函数,它将使对话框不可见但并不废除它。 4)OnCancel( ) 单击Cancel按钮或按ESC键时调用。 模式:调用时自动终止,DoModal( )返回IDCANCEL; 无模式:必须重载,调用DestroyWindow( )删除对话框(必 要用基类的该函数)。 * * DoModal( )被调用时,“幕后”有一系列函数调用,顺序如下: DoModal( )→自定义对话框初始化→Cdialog初始化→CWnd::UpdateData(FALSE) →自定义对话框::DoDataExchange →用户输入数据→单击OK后→自定义对话框OnOK →Cdialog::OnOK →CWnd::UpdateData(TRUE) →自定义对话框 ::DoDataExchange →Cdialog::EndDialog(IDOK) CWnd::UpdateData(FALSE) 变量中数据传给相应控件 CWnd::UpdateData(TRUE) 控件中数据传给相应变量 * * 5、数据交换和验证(DDX和DDV) 1)DDX(Dialog data exchange) 实现对话框中控件数值的初始化和获取用户的数据输入,加载数据和对话框关闭时恢复数据自动化。 2) DDV(Dialog data validation) 对对话框中控件数据进行校验,长度范围有效化,。它们均在DoDataExchange()函数中,ClassWizard自动生成,可不必深究。 6、模式对话框 弹出后,独占了系统资源,只有在关闭后才可以继续执行,在此之前不能执行应用程序其它代码。模式对话框一般要求用户作出某种选择。如: CMyDialog dlg; dlg.DoModal(); * * 7、非(无)模式对话框 弹出后,不关闭的情况下程序可继续执行其它部分而不要用户作出响应。一般用来显示信息或者实时地进行一些设置。它调用Create()函数,而不是用DoModal()。 举例: 类名:CDialogModalless 文件名:DialogModalless.h和DialogModalless.cpp 增加CDialogModalless类指针。 在view类中添加变量: CDialogModalless* m_pModallessDlg; 2)在view类中包含头文件; 3)在view类中的构造函数中初始化指针: m_pModallessDlg=NULL; * * 4)在消息处理函数中,创建显示无

文档评论(0)

bodkd + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档