在MFC程序中使用对话框时一般都是首先在资源模版里创建对话框资源,然后DoModal()或者Create显示出模式对话框或者非模式对话框。然而采用该方式创建出的对话框移植性差,从一个工程移动到另一个工程比较麻烦。
在MFC中还有另一种创建对话框的方法,即利用DLGTEMPLATE、DLGITEMTEMPLATE结构体进行对话框的创建。
一、DLGTEMPLATE
typedef struct {DWORD style; //DWORD dwExtendedStyle; //WORD cdit; //控件数量short x; //对话框左上角的 x 坐标short y; //对话框左上角的 y 坐标short cx; //对话框的宽度short cy; //对话框的高度
} DLGTEMPLATE;
- style是指对话框的样式。此成员可以是窗口样式值(如 WS_CAPTION 和 WS_SYSMENU)和对话框样式值的组合(如 DS_CENTER)。
- dwExtendedStyle是指窗口的扩展样式。
DLGTEMPLATE结构后总是紧跟着三个变长数组,它们分别指定了对话框的菜单,类,标题。每个数组由一或更多的16-bit元素组成。菜单,类和标题数组必须在WORD边界上对齐。
<