这里先将模式对话框,当然非模式也类似
首先说下一个结构体
typedef struct {
DWORD style;
DWORD dwExtendedStyle;
WORD cdit;
short x;
short y;
short cx;
short cy;
} DLGTEMPLATE, *LPDLGTEMPLATE;
这个是对话框创建模板结构体
style:
Specifies the style of the dialog box. This member can be a combination of window style values (such as WS_CAPTION and WS_SYSMENU) and dialog box style values (such as DS_CENTER).
For a list of window styles, see CreateWindow. For a list of dialog box styles, see Dialog Box Templates.
dwExtendedStyle:
暂时没看出什么用...
cdit:指明创建有多少个items在这个dialog中
下面4个就不说了
根据csdn上解释
创建dialog还有一些数据,这些数据时跟在这个结构体后面动态改变长度的。
顺序依次是:菜单menu,dialog类名(可以用默认的,也可以自定义),title设置,字体设置(包括字体大小和字体风格),结构体中cdit个dword长度的,类型为DLGITEMTEMPLATE ,意指各个item的信息。
这个就是dialog的结构体的剖析了。具体可以去查看msdn上的dlgtemplate结构体查看。
另外一些tip:
1:只有在style中设定了DS_SETFONT才会有字体设置一项,而且设置后会在那些item创建和dialog box创建及运行过程中发送WM_SETFONT消息。
2:几乎后面的都是以dword一个一个信息组装的。
定义好结构体后,
然后通过initmodalindirect函数来初始化一个模式对话框。