首页 理论教育 零点起步:对话框编程实例与技巧

零点起步:对话框编程实例与技巧

时间:2023-10-31 理论教育 版权反馈
【摘要】:采用对话框编程是一种快速构建用户界面的技术。为此,一般的GUI系统都会提供一种机制。MiniGUI也提供了这种方法,通过建立对话框模板,就可以建立模式或者非模式的对话框。模式对话框就是显示之后,用户不能再切换到其他主窗口进行工作的对话框,而只能在关闭之后,才能使用其他的主窗口。其中CTRLDATA结构体的作用是定义对话框模板中的各个控件,DLGTEMPLATE结构体的作用是定义对话框本身。

零点起步:对话框编程实例与技巧

采用对话框编程是一种快速构建用户界面的技术。通常,编写简单的图形用户界面时,可以通过调用CreateWindow()函数直接创建所有需要的子窗口,即控件。但是在图形用户界面比较复杂的情况下,每建立一个控件就调用一次CreateWindow()函数,并传递许多复杂参数的方法很不可取。主要原因就是程序代码和用来建立控件的数据混在一起,不利于维护。为此,一般的GUI系统都会提供一种机制。利用这种机制,通过指定一个模板,GUI系统就可以根据此模板建立相应的主窗口和控件了。MiniGUI也提供了这种方法,通过建立对话框模板,就可以建立模式或者非模式的对话框。

模式对话框就是显示之后,用户不能再切换到其他主窗口进行工作的对话框,而只能在关闭之后,才能使用其他的主窗口。在MiniGUI中,使用DialogBoxIndirectParam()函数建立的对话框就是模式对话框。实际上,该对话框首先根据模板建立对话框,然后禁止其托管主窗口,并在主窗口的MSG_CREATE消息中创建控件,并发送MSG_INITDIALOG消息给回调函数,最终建立一个新的消息循环,并进入该消息循环,直到程序调用EndDialog()函数为止。

对话框模板使用CTRLDATA结构体和DLGTEMPLATE结构体进行构建。其中CTRLDATA结构体的作用是定义对话框模板中的各个控件,DLGTEMPLATE结构体的作用是定义对话框本身。两个结构体的定义如下:(www.xing528.com)

利用这两个结构体模板,用户可以根据需要在程序中定义自己的对话框和控件。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈