现在的位置: 首页 > 综合 > 正文

对话框dialog创建深入探索

2013年05月26日 ⁄ 综合 ⁄ 共 859字 ⁄ 字号 评论关闭

这里先将模式对话框,当然非模式也类似

 

首先说下一个结构体

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函数来初始化一个模式对话框。

 

抱歉!评论已关闭.