win32 5.4 对话框的简介
-
对话框介绍:
对话框就是在程序中“选择菜单项弹出一个窗口”,认为是“子窗口”,其中对话框的按钮、文本框、图标等就是 子窗口控件。 -
对话框的类型:
- modEl 对话框:模板对话框,用户在关闭对话框前不能切换到该程序的其他窗口。
- modeless 对话框:非模板对话框,可以任意切换该程序的其他窗口。
-
对话框的工作原理:
- 对话框创建使用的函数:
- model对话框:DialogBoxParam( )
- modeless:CreateDialogParam( )
- 对话框窗口创建过程:
- 其对话框创建同样使用WM_CREATE消息,我们使用 对话框过程 来处理 对话框里的消息。
- 但是,应该注意的是:
- 我们在 对话框过程中 不用负责 WM_CREATE消息的处理,我们在调用上面的对话框创建函数 时,Windows内核会自动处理该WM_CREATE函数,以后的 对话框消息 都要先经过 Windows内建的窗口过程处理完自己应该处理的消息,之后再扔给用户定义的 对话框过程。
- 另外,在 模板对话框中,连 消息循环都内建在windows中,这就意味着:我们无法在模板对话框中使用 加速键 等功能。
- 代码解读:我们来看一下一个关于 模板对话框 的代码。结合上面图解可以看出,当创建完后,控制权一直在内核中,直到调用 对话框处理过程 才把控制权交给用户;但普通窗口,其循环过程的控制权一直都在用户手中。
- 对话框创建使用的函数: