当编译资源描述档时,这两条叙述在.RES和.EXE档案中的编码是相同的。在Developer Studio中,您可以使用 Controls 工具列中的 Custom Control 选项来建立此叙述。在ABOUT3程式中,我向您展示了如何用此选项建立一个控制项,且在您的程式中已定义了该控制项的视窗类别。
当您在对话方块模板中使用CONTROL叙述时,不必包含WS_CHILD和WS_VISIBLE样式。在建立子视窗时,Windows已经包含了这些视窗样式。CONTROL叙述的格式也说明Windows对话方块管理器在建立对话方块时就完成了此项操作。首先,就像我前面所讨论的,它建立一个弹出式视窗,其父视窗代号在DialogBox函式中提供。然後,对话方块管理器为对话方块模板中的每个控制项建立一个子视窗。所有这些控制项的父视窗均是这个弹出式对话方块。上面给出的CONTROL叙述被转换成一个CreateWindow呼叫,形式如下所示:
其中,cxChar和cyChar是系统字体字元的宽度和高度,以图素为单位。hDlg参数是从建立该对话方块视窗的CreateWindow呼叫传回的值;hInstance参数是从DialogBox呼叫获得的。
更复杂的对话方块
ABOUT1中的简单对话方块展示了设计和执行一个对话方块的要点,现在让我们来看一个稍微复杂的例子。程式11-2给出的ABOUT2程式展示了如何在对话方块程序中管理控制项(这里用单选按钮)以及如何在对话方块的显示区域中绘图。