更新时间:2024-05-21 12:00
对话方块的一般形式是包含多种子视窗控制项的弹出式视窗,这些控制项的大小和位置在程式资源描述档的「对话方块模板」中指定。虽然程式写作者能够「手工」定义对话方块模板,但通常是在Visual C++ Developer Studio中以交谈式操作的方式设计的,然後由Developer Studio建立对话方块模板。
当程式呼叫依据模板建立的对话方块时,Microsoft Windows 98负责建立弹出式对话方块视窗和子视窗控制项,并提供处理对话方块讯息(包括所有键盘和滑鼠输入)的视窗讯息处理程式。有时候称呼完成这些功能的Windows内部程式码为「对话方块管理器」。
Windows的内部对话方块视窗讯息处理程式所处理的许多讯息也传递给您自己程式中的函式,这个函式即是所谓的「对话方块程序」或者「对话程序」。对话程序与普通的视窗讯息处理程式类似,但是也存在著一些重要区别。一般来说,除了在建立对话方块时初始化子视窗控制项,处理来自子视窗控制项的讯息以及结束对话方块之外,程式写作者不需要再给对话方块程序增加其他功能。对话程序通常不处理WM_PAINT讯息,也不直接处理键盘和滑鼠输入。
对话方块这个主题的含义太广了,因为它还包含子视窗控制项的使用。不过,我们已经在第九章研究了子视窗控制项。当您在对话方块中使用子视窗控制项时,第九章所提到的许多工作都可以由Windows的对话方块管理器来完成。尤其是,在程式COLORS1中遇到在卷动列之间切换输入焦点的问题也不会在对话方块中出现。Windows会处理对话方块中的控制项之间切换输入焦点所必需完成的全部工作。