CreateDialogIndirectParam
The CreateDialogIndirectParam
function creates a modeless dialog box from a dialog box template in memory.
Before displaying the dialog box, the function passes an application-defined
value to the dialog box procedure as the lParam parameter of the WM_INITDIALOG
HWND CreateDialogIndirectParam(
HINSTANCE hInstance, |
// handle to
application instance |
LPCDLGTEMPLATE lpTemplate, |
// pointer to
dialog box template |
HWND hWndParent, |
// handle to owner
window |
DLGPROC lpDialogFunc, |
// pointer to
dialog box procedure |
LPARAM lParamInit |
// initialization
value |
); |
|
Parameters
hInstance
Identifies
the instance of the module that will create the dialog box.
lpTemplate
Pointer to a
global memory object containing a template that CreateDialogIndirectParam
uses to create the dialog box. A dialog box template consists of a header that
describes the dialog box, followed by one or more additional blocks of data
that describe each of the controls in the dialog box. The template can use
either the standard format or the extended format.
In a standard
template, the header is a DLGTEMPLATE
In an
extended dialog box template, the header uses the DLGTEMPLATEEX
hWndParent
Identifies
the window that owns the dialog box.
lpDialogFunc
Points to the
dialog box procedure. For more information about the dialog box procedure, see DialogProc
lParamInit
Specifies the
value to pass to the dialog box in the lParam parameter of the WM_INITDIALOG
message.
Return Values
If the
function succeeds, the return value is the window handle to the dialog box.
If the
function fails, the return value is NULL.
Remarks
The CreateDialogIndirectParam
function uses the CreateWindowEx function to create the dialog box. CreateDialogIndirectParam
then sends a WM_INITDIALOG
After CreateDialogIndirectParam
returns, you can use the ShowWindow function to display the dialog box
(if it is not already visible). To destroy the dialog box, use the DestroyWindow
function.
In a standard
dialog box template, the DLGTEMPLATE structure and each of the DLGITEMTEMPLATE
structures must be aligned on DWORD boundaries. The creation data array
that follows a DLGITEMTEMPLATE structure must also be aligned on a DWORD
boundary. All of the other variable-length arrays in the template must must be aligned
on WORD boundaries.
In an
extended dialog box template, the DLGTEMPLATEEX header and each of the DLGITEMTEMPLATEEX
control definitions must be aligned on DWORD boundaries. The creation
data array, if any, that follows a DLGITEMTEMPLATEEX structure must also
be aligned on a DWORD boundary. All of the other variable-length arrays
in the template must be aligned on WORD boundaries.
All character
strings in the dialog box template, such as titles for the dialog box and
buttons, must be Unicode strings. To create code that works on both Windows NT
and Windows 95, use the MultiByteToWideChar function to generate these
Unicode strings.
Windows
95: The system can support a maximum
of 16,364 window handles.
See Also