对话框dialog创建深入探索

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

 

首先说下一个结构体

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值