這裏先將模式對話框,當然非模式也類似
首先說下一個結構體
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函數來初始化一個模式對話框。