您的位置:首页 > 其它

Win32模式对话框和非模式对话框的区别

2012-07-19 15:39 281 查看
Win32对话框分为两种类型:

第一类:模式对话框

模式对话框又分为两种

1.应用程序模式对话框-->在关闭对话框前不能切换到同一程序另一窗口

2.系统模式对话框-->关闭该对话框前无法切换到其他任何窗口(如关机时弹出的窗口)

第二类:非模式对话框

区别一:创建非模式对话框要调用API函数CreatDialogParam,而创建模式对话框要调用API函数DialogBoxParam(其中创建应用程序模式对话框和系统模式对话框之间的差别是对话框模板的style参数的不同,若要创建系统模式对话框该参数必须“或”上DS_SYSMODAL标志位)

区别二显示时间不同。CreateDialogParam在创建对话框后,会根据资源文件中的对话框模板的风格是否定义了WS_VISIBLE在决定是否显示对话框窗口。如果定义了,则显示对话框;否则,需要在后续代码中调用ShowWindow来显示对话框。而DialogBoxParam函数创建的模式对话框,不过是否定义WS_VISIBLE风格都会显示对话框

区别三:函数返回时间和返回值不同CreateDialogParam在创建对话框后直接返回,返回值是对华框窗口的句柄;二DialogBoxParam在对话框关闭时才返回,返回值是EndDialog中的dwResult参数

区别四:使用的消息循环不同。非模式对话框在自己的消息循环中处理消息,二DialogBoxParam函数使用Windows内建的消息循环

区别五:关闭时使用的函数不同。关闭非模式对话框使用DestroyWindow函数,关闭模式对话框使用EndDialog函数

具体实例见下篇博文。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: