2019独角兽企业重金招聘Python工程师标准>>>

非模式对话框CreateDialog() 与 模式对话框 DialogBoxParam()和DialogBox()

一、模式对话框比非模式对话框的好处 是,它是作为一个独立窗口打开的,不会影响父窗口的状态,而后者打开后,关闭前父窗口是不能使用的。而且必须要对话框关闭以后,函数才会返回调用生成对话框语句的下一句。而模式对话框在不关闭的情况下也能返回下一句程序位置。

比如:

[cpp]  view plain copy
  1. //模式对话框时
  2. hwndResultDlg = CreateDialog (hInst, TEXT ("RESULT"), hwnd, ResultDlg) ;
  3. 语句2;//在对话框开启状态下也能返回执行之
  4. //非模式对话框时
  5. DialogBoxParam (hInst, TEXT ("SEND"), hwnd, SendDlg,0);
  6. 语句2;//在对话框开启时,不能返回执行,必须要先关闭才行

二、DialogBoxParam()与DialogBox的区别 是,前者最后多一个参数,可以传递给Iparam参数。

两者销毁都用EndDialog()

三、非模式对话框使用CreateDialg建立。 
可以在WinMain中建立主窗口后建立,对话框句柄保存备用。

hDlgModeless = CreateDialog ( hInstance,  TEXT ("ColorScrDlg"),    //对话框模板 hwnd,  ColorScrDlg  //对话框消息处理函数 );

四、消息循环添加针对非模式对话框的处理

“非模式对话框”与“模式对话框”不同,模式对话框工作的时候,有其内部的消息泵机制。
而非模式对话框则象普通窗口一样,由WinMain中书写的消息循环驱动。
但由于是对话框,它对一些消息有特殊的处理,例如用于在对话框中各子控件间导航的"TAB"键、"ENTER"键等等。
因此,在消息循环中,需要先给对话框提供截获消息的机会。

while (GetMessage (&msg, NULL, 0, 0)) { if (hDlgModeless == 0 || !IsDialogMessage (hDlgModeless, &msg)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } }

如果当前取得的消息是对话框消息的话,IsDialgMessage将它交由对话消息处理函数处理,并返回TRUE。
不需要在派发了。

五、非模式对话框的销毁

使用:

DestroyWindow (hDlg);

非模式对话框使用CreateDialg建立。
可以在WinMain中建立主窗口后建立,对话框句柄保存备用。

hDlgModeless = CreateDialog ( hInstance,  TEXT ("ColorScrDlg"),     //对话框模板 hwnd,  ColorScrDlg  //对话框消息处理函数 );

消息循环添加针对非模式对话框的处理

“非模式对话框”与“模式对话框”不同,模式对话框工作的时候,有其内部的消息泵机制。
而非模式对话框则象普通窗口一样,由WinMain中书写的消息循环驱动。
但由于是对话框,它对一些消息有特殊的处理,例如用于在对话框中各子控件间导航的"TAB"键、"ENTER"键等等。
因此,在消息循环中,需要先给对话框提供截获消息的机会。

while (GetMessage (&msg, NULL, 0, 0)) { if (hDlgModeless == 0 || !IsDialogMessage (hDlgModeless, &msg)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } }

如果当前取得的消息是对话框消息的话,IsDialgMessage将它交由对话消息处理函数处理,并返回TRUE。
不需要在派发了。

六、非模式对话框的销毁

使用:

DestroyWindow (hDlg);

转载于:https://my.oschina.net/ypimgt/blog/69367

非模式对话框CreateDialog() 与 模式对话框 DialogBoxParam()和...相关推荐

  1. windows对话框窗口DialogBox模式对话框、EndDialog、CreateDialog非模式对话框、DestroyWindow、WM_INITDIALOG

    普通窗口:自定义函数调用缺省函数 wndProc(-) { - DefWindowProc(-); } 对话框窗口:缺省函数 调用自定义函数 缺省函数(-){ - 自定义函数(-) - } 对话框原理 ...

  2. 第七章:无模式对话框 和 Windows通用对话框类

    第七章:无模式对话框 和 Windows通用对话框类 1,[无模式对话框]在它处于激活状态下还允许用户在(同一个应用程序中)其它地方工作. [通用对话框]则是C++和一组Windows的实用对话框之间 ...

  3. C# 非模式窗体show()和模式窗体showdialog()的区别

    对话框不是模式就是无模式的.模式对话框,在可以继续操作应用程序的其他部分之前,必须被关闭(隐藏或卸载).例如,如果一个对话框,在可以切换到其它窗 体或对话框之前要求先单击"确定"或 ...

  4. 五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O

    From: http://blog.163.com/xychenbaihu@yeah/blog/static/13222965520112163171778/ 五种I/O 模式: [1]        ...

  5. [4G5G专题-57]:L2 RLC层-详解RLC架构、数据封装、三种模式:透明TM、非确认模式UM、确认模式AM

    目录 第1章  L2 RLC层的架构 1.1 RAN的架构 1.2 L2架构概述 1.3 RLC软件系统结构图 第2章 TCP/IP协议提供的三种传输服务 ​2.1 TCP 2.2 UDP 2.3 R ...

  6. 非同步DCDC的工作模式 (DCM断续、BCM临界、CCM连续)

    非同步DCDC的工作模式(CCM.DCM和BCM)_bcm模式_努力不期待的博客-CSDN博客 非同步DCDC工作在哪种模式,取决于拓扑和输出功率,输入电压和输出电压的大小. 1,什么是DCM断续工作 ...

  7. MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)

    前面讲了模态对话框和非模态对话框,本节来将一种特殊的对话框--属性页对话框. 属性页对话框的分类 属性页对话框想必大家并不陌生,XP系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面 ...

  8. Android Doze模式和app Standby模式

    对低电耗模式(app Standby)和应用待机模式(Doze)进行针对性优化 从 Android 6.0(API 级别 23)开始,Android 引入了两个省电功能,可通过管理应用在设备未连接至电 ...

  9. android 夜间模式功能,Android 夜间模式的三种实现

    实现夜间模式有很多种方式,经过多次尝试,算是找到了一种性价比较高的方式. 主题方式 这是最正统的方式,但工作量巨大,因为要全局替换 xml 布局中所有硬编码的色值,将其换成主题色.然后通过换主题达到换 ...

  10. 索引颜色图模式和LAB颜色模式区别

    索引颜色图模式和LAB颜色模式 索引颜色图模式 索引颜色图像是一幅用8位二进制数来描述的图像,即在整幅图像内最多只有28(即256色)种颜色,通常我们用于印刷的计算机图像是24位,共计1670万种颜色 ...

最新文章

  1. java 注解scheduler_使用Scheduler
  2. git cherry-pick简介
  3. cachecloud:Redis云管理平台
  4. 2014 网选 5024 Wang Xifeng's Little Plot
  5. 递增运算符练习(JS)
  6. python安装失败找不到指定路径_解决安装python库时windows error5 报错的问题
  7. wifi无线破解之跑pin最详细教程 2017
  8. api与密度转换公式_API、比重换算表
  9. 愿你不会像我一样,活成狗一般的生活!
  10. 脱硫塔发生堵塞,会产生什么影响?怎么应对?基于钙法、镁法、双碱法、氨法脱硫技术比较分析
  11. CSS3实现渐变背景
  12. typecho图标_handsome+Typecho美化过程【持续更新】包括踩坑解决办法
  13. Swagger2由入门到实战
  14. 合宙air105上手记录
  15. Cookie在前端写还是后端?
  16. rasa算法_【RASA系列】语义理解(上)
  17. 星历表2019最新跟踪
  18. 淘宝客月赚3000元的简单方法
  19. java支持库 易语言_易语言支持库简单安装加载添加
  20. ros 如何发布自己规划的路径研究

热门文章

  1. c语言屏蔽一段程序,C语言#if 0阻止代码段
  2. SNMP-简单网络管理协议
  3. 三相锁相环仿真及其代码验证,附C语言源码
  4. SAI绘制小树基础教程
  5. Word,Excel联动结合邮件合并功能实现批量打印员工个人信息表桌牌奖状出试卷
  6. OpenCV——LBP特征
  7. 软考计算机网络初级试题答案,2015年下半年中级软考《计算机网络—网络工程师》试题及答案...
  8. python车牌识别使用训练集_TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
  9. Visio2019中插入数学公式
  10. Word-制作“田”字格、“米”字格、“拼音”字格和“日”字格