chapter13 对话框

chapter13 对话框

ID:65448784

大小:399.50 KB

页数:59页

时间:2022-01-09

chapter13 对话框_第1页
chapter13 对话框_第2页
chapter13 对话框_第3页
chapter13 对话框_第4页
chapter13 对话框_第5页
chapter13 对话框_第6页
chapter13 对话框_第7页
chapter13 对话框_第8页
chapter13 对话框_第9页
chapter13 对话框_第10页
资源描述:

《chapter13 对话框》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Windows程序设计第13章:对话框西安邮电学院系统结构教研室指导老师:范琳本章重点模态对话框非模态对话框通用对话框什么是对话框?对话框是由菜单中的选项来启动的,在windows系统中,如果菜单中的选项后加上了“…”,点击就能启动对话框。对话框用于“显示系统的提示信息”,“用户数据的输入”,“文件的打开与关闭”等等,用于用户和系统的对话,故称为对话框。对话框的分类模态对话框:当出现模态对话框时,它的父窗口暂时失效,处理完对话框的所有动作后,才能将控制权交给父窗口。非模态对话框:又称为“共存式对话框”,这种对话框出现时,父窗口不会失效,用户可以把输入

2、焦点转移到父窗口,并执行父窗口的工作。大部分共存对话框的窗口样式都被指定为:WS_POPUP,WS_CAPTION,WS_SYSMENU,WS_BORDER。典型的共存对话框包括菜单,标题等。消息来源模态对话框:消息来源于对话框管理器;共存对话框:从WinMain中的消息循环取得消息;如果共存对话框中有控件,则用于必须在消息循环中调用IsDialogMessage来判断消息是不是要送给共存对话框。while(GetMessage(&msg,NULL,0,0)){if(!IsDialogMessage(hDlgModeless,&msg)){Trans

3、lateMessage(&msg);DispatchMessage(&msg);}}第三类对话框排它式对话框:又称为“系统模式对话框”,当它出现时,不仅父窗口失效,其它程序的窗口也一同失效,甚至切换程序操作也不允许。Windows中一般用排它式对话框显示系统中出现的严重错误,此时需要先结束该对话框,才能进行其它操作。只要在建立对话框时,在窗口样式中加入WS_SYSMODEL就可以建立排它式对话框,或者用SetSysModelWindow()函数建立。这种对话框在应用程序中使用较少。对话框管理器对话框是一种窗口,因此需要窗口消息处理函数来处理进入对话框

4、的消息,完成这一功能不仅靠一个函数,而是对话框管理器和对话框函数。对话框管理器DefDialogProc消息对话框消息处理函数程序员编写调用windows10DefWindowProc对话框消息处理函数与窗口消息处理函数对话框消息处理函数与窗口消息处理函数十分相似:相同点与窗口消息处理函数参数一致;同为CALLBACK函数,都是由windows调用的;函数结构都是switch语句;对话框消息处理函数与窗口消息处理函数不同点窗口消息处理函数的返回值是LRESULT类型,被定义为int型;对话框消息处理函数返回BOOL类型,返回值只能是TRUE或FALS

5、E;如果窗口消息处理函数不处理某消息,则会调用DefWindowProc来处理;对话框消息处理函数处理该消息,会返回TRUE,不处理会返回FALSE;对话框消息处理函数不需要处理WM_PAINT或者WM_DESTROY消息,对话框程序不接收WM_CREAT消息,而是在WM_INITDIALOG消息中完成初始化。WM_INITDAILOG消息WM_INITDAILOG消息是对话框创建时产生的消息,该消息只针对对话框的。如果直接返回TRUE,windows将输入焦点设定给对话框中第一个具有WS_TABSTOP样式的控件。也可以使用SetFocus来将输入

6、焦点设定为对话框中的某个控件,然后传回FALSE。WM_COMMAND消息当对话框中的某个控件被点击时,控件发送给对话框的消息,控件的ID存放在wParam的低字中,对于这个消息,对话框清除了对话框。其它消息,对话框消息处理函数返回FALSE。例1——About1程序在窗口上添加菜单;点击菜单,生成简单的About对话框。创建对话框选择“insertresource”,添加对话框;Control工具栏允许将部分控件拖放到对话框之上。资源脚本点击创建的资源脚本文件resource.rc,用记事本打开,能看到:对话框名称:about依据坐标系为:以父窗口

7、显示区域的左上角为坐标原点这里的坐标和大小不是像素,是针对对话框的特殊坐标系统:x坐标的宽度是字符宽的1/4,y是字符高的1/8BEGIN与END定义控件CTEXT是居中的文本ID用于区别是哪个控件给对话框发送的消息激活对话框caseWM_COMMAND:switch(LOWORD(wParam)){caseIDM_ABOUT:DialogBox(g_hinst,TEXT("about"),hwnd,AboutDlgProc);break;}return0;DialogBox:参数1是当前程序实例句柄,参数2是要激活的对话框的名称,参数3是父窗口句柄

8、,参数4是对话框处理函数。如果对话框名称是一个ID,也就是一个数字,可以用MAKEINTRESOURCE将它

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。