CreateDialoglndirectParam

一種函式,該函式從記憶體中的對話框模板上創建一個無模式對話框,在顯示對話框之前,函式把應用程式定義的值作為WM_INITDIALOG訊息的IParam參數傳送到對話框過程。應用程式可用此值初始化對話框控制。

基本介紹

函式原型,參數,備註,

函式原型

HWND CreateDialoglndirectParam(
HINSTANCE hlnstance,
LPCDLGTEMPLAT IPTemPIate,
HWND hWndParent,
DLGPROC IpDialogFunc,
LPARAM IParamlnlt
);

參數

hlnstance:標識將創建對話框的模組的事例。
IpTemplate:指向一個含有模板的全局記憶體對象的指針,CreateDialoglndirectParam用該模板來創建對話框。
對話框模板由描述對話框的標題組成,跟隨著標題之後的是描述每一個控制的一個或多個數據塊,模板可以用標準格式或擴展格式。
在標準模板中,標題是由DLGTEMPLATE結構跟隨一個變長數組組成。每個控制的數據是由DLGTEMPLATE結構跟隨一個變長數組組成。
在擴展模板中,標題用DLGTEMPLATEEX格式,且控制定義用DLGITEMPLATEEX格式。
CreateDiloglndirectParam函式返回後,可釋放模板,此模板僅用於啟動對話框。
HWndParent:標識擁有對話框的視窗。
IpDialogFunc:指向對話框過程的指針,有關更多的對話框過程的信息,參見DialogProc。
lParamlnit:指定傳遞到WM_INIDIALOG訊息的IParam參數中對話框中的值。
返回值:如果函式調用成功,則返回值為指向對話框的句柄:如果函式調用失敗,則返回值為NULL。若想獲得更多的錯誤信息,可調用GetLastError函式。

備註

CreatDialoglndirectParam函式使用createWindowEx函式來創建對話框,然後該函式把一個WM_INTDIALOG訊息傳送到對話框應用程式,如果模板指定DS_SETFONT類型,則函式也把一個WM_SETFONT訊息傳送到對話框應用程式。如果模板指定WS_VISBLE類型,則函式顯示對話框,最後CreatDialogdirectParam返回指向對話框的視窗句柄
CreatDialoglndirectParam函式返回之後,可用ShowWindow函式來顯示對話框(如果還沒有顯示)。用DestroyWindow函式來清除對話框。
在標準對話框模板中,DLGTEMPLATE結構和每一個DLGITEMTEMPLATE結構必須按DWORD邊界對齊,遵循DLGEMTEPLATE結構而創建的數據數組也一定按DWORD邊界對齊。模板中其他所有變長數組一定要按DWORD邊界進行調整。
在擴展對話框模板上DLGTEMPLATEEX結構和每一個DLGITEMTEMPLATEEX結構必須按DWORD邊界對齊,遵循DLGEMTEPLATE結構而創建的數據數組也一定按DWORD邊界對齊。模板中其他所有變長數組一定要按DWORD邊界進行調整。
所有對話框模板的字元串,例如對話框和按鈕的標題,一定是Unicode字元串。使用
MultiByteTowidechar函式產生這些Unicode字元串可以創建在Windows和Windows NT兩種系統上工作的代碼。
Windows 95和以後版本:系統可支持每個對話框模板最多為255個控制。為把多於255個控制放入對話框,可以在WM_INITDLALOG訊息處理器中創建控制,而不是把它們放入模板中。
Windows CE:可視螢幕面積之外的對話框不能自動地被重新定位。
如果用戶在對話框有輸入焦點的同時按下Alt+H,則系統把一個WM_HELP訊息傳送到對話過程,應用程式應該通過顯示對話框描述表積極幫助來回響此訊息。
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兩種版本。

相關詞條

熱門詞條

聯絡我們