- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 对话框的使用
第11章 对话框的使用 本章主要就是介绍对话框的工作原理和设计方法的。如果菜单项后面加上省略号(…),就表示点击该菜单项时,将启动一个对话框。对话框用于用户和系统之间的对活,故称为对话框。对话框是一种弹出式窗口,这个窗口的客户区包含有多种子窗口控制项,这些控制项的大小和地址是由资源描述文件中的“对话框模板”来指定。对话框模板是一个文本文件,虽然编程人员能够“手工”定制对话框模板,但是现在通常是用Visual C++ Developer Studio以交互方式来设计。 11.1概述 什么是对话框 对话框的分类 对话框函数(Dialog Function) 对话框中使用控制项 设计对话框的步骤 1. 编写对话框模板 2. 编写对话框函数 11.1.1 什么是对话框 对话框一般是由菜单中的选择项(菜单项)来启动的。 点击word桌面上的菜单项,就会弹出一个下拉式菜单,菜单中的新建…,打开…,另存为…,等菜单项,点击之总能打开一个对话框。 对话框用于“系统给用户的信息显示”,“用户数据的输入”,“文件的打开与关闭”,“系统返回信息的显示”等,… 一句话,用于用户和系统的对活。 对话框是一种向下的弹出式窗口,又称下拉式窗口。 对话框的客户区包含有多种子窗口控制项,这些子窗口控制项的大小和地址是由资源描述文件中的“对话框模板”来指定 。 11.1.2 对话框的分类 对话框分成两类:模态对话框和非模态对话框 。 模态对话框: 是指这种对话框出现时其父窗口将暂时失效,非得要处理完对话框所要求的动作后,才能将控制权交回给父窗口。例如,Word文件菜单中“打开”菜单项所弹出的就是模态对话框. 非模态对话框: 又称“共存式对话框”, 这种对话框出现时,它的父窗口不会失效,用户可以把输入焦点转移到父窗口,并执行父窗口的工作。 模态对话框和共存式对话框的消息来源与处理方式是不一样的,共存式对话框从消息循环取得消息,而模态对话框从对话框管理器。 系统模态对话框:除了模态和共存式对话框之外,还有一种“排它”式对话框, 它又称为“系统模态对话框”。 当它出现时,非但其父窗口失效, 就连其他程序的窗口也一并失效, 11.1.3 对话框函数(Dialog Function) 窗口都要用窗口函数处理窗口消息,对话框也是一种窗口 对话框也要用窗口函数来处理进入对话框的消息 完成这个功能不是靠一个函数,而是靠对话框管理器和对话框函数。对话框函数的结构与窗口函数十分类似: BOOL CALLBACK OptionDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch (LOWORD (wParam)) { case IDOK: case IDCANCEL: EndDialog (hDlg,0) ; return TRUE ; } break ; } return FALSE ; } 11.1.4 对话框中使用控制项 在对话框中使用控制项就像一般窗口中使用控制项一样 有一些特殊函数可以存取对话框中的控制项, 例如: SendDlgItemMessage可以送消息给对话框中的控制项 SetDlgItemText可以设定对话框中控制项的标题 这两个函数都不需要控制项的代号,但需要对话框的代号及控制项的识别码,可以利用 GetDlgItem来取得控制项的代号。 11.1.5 设计模态对话框的步骤 1. 编写对话框模板 。 11.1.5 设计模态对话框的步骤 2. 编写对话框函数。 #include windows.h #include resource.h int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { return DialogBox(hInstance,MAKEINTRESOURCE(IDD_PASSWORD),NULL,DlgProc); } BOOL CALLBACK DlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARA
文档评论(0)