一種函式,該函式從記憶體中的對話框模板上創建一個無模式對話框,在顯示對話框之前,函式把應用程式定義的值作為WM_INITDIALOG訊息的IParam參數傳送到對話框過程。應用程式可用此值初始化對話框控制。
基本介紹
函式原型,參數,備註,
函式原型
HWND CreateDialoglndirectParam(
HINSTANCE hlnstance,
LPCDLGTEMPLAT IPTemPIate,
HWND hWndParent,
DLGPROC IpDialogFunc,
LPARAM IParamlnlt
);
參數
hlnstance:標識將創建對話框的模組的事例。
IpTemplate:指向一個含有模板的全局記憶體對象的指針,CreateDialoglndirectParam用該模板來創建對話框。
對話框模板由描述對話框的標題組成,跟隨著標題之後的是描述每一個控制的一個或多個數據塊,模板可以用標準格式或擴展格式。
在擴展模板中,標題用DLGTEMPLATEEX格式,且控制定義用DLGITEMPLATEEX格式。
CreateDiloglndirectParam函式返回後,可釋放模板,此模板僅用於啟動對話框。
HWndParent:標識擁有對話框的視窗。
IpDialogFunc:指向對話框過程的指針,有關更多的對話框過程的信息,參見DialogProc。
lParamlnit:指定傳遞到WM_INIDIALOG訊息的IParam參數中對話框中的值。
備註
CreatDialoglndirectParam函式使用createWindowEx函式來創建對話框,然後該函式把一個WM_INTDIALOG訊息傳送到對話框應用程式,如果模板指定DS_SETFONT類型,則函式也把一個WM_SETFONT訊息傳送到對話框應用程式。如果模板指定WS_VISBLE類型,則函式顯示對話框,最後CreatDialogdirectParam返回指向對話框的視窗句柄。
CreatDialoglndirectParam函式返回之後,可用ShowWindow函式來顯示對話框(如果還沒有顯示)。用DestroyWindow函式來清除對話框。
所有對話框模板的字元串,例如對話框和按鈕的標題,一定是Unicode字元串。使用
MultiByteTowidechar函式產生這些Unicode字元串可以創建在Windows和Windows NT兩種系統上工作的代碼。
Windows 95和以後版本:系統可支持每個對話框模板最多為255個控制。為把多於255個控制放入對話框,可以在WM_INITDLALOG訊息處理器中創建控制,而不是把它們放入模板中。
Windows CE:可視螢幕面積之外的對話框不能自動地被重新定位。
DLGTEMPLATE結構的類型成員不支持下列類型:
DS_SETFONT:在對話框中不能設定字型。
DS_RECURSE:不需要。任何一個子對話框可自動地被看作遞歸對話框。
DS_CONTROL:不需要。
WS_EX_CONTROLPARENT:所有對話框都被自動假設為控制母體。用DS_CENTER類型可得到預設位置定位。如果沒有指定WS_CHLD.則假設為WS_POPUP類型。
速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:1.0及以上版本;頭檔案:winuse.h庫檔案:user32.lib;Unicode:在Windows NT上實現為Unicode和ANSI兩種版本。