winuser.h

Macro CreateDialog

Crea un cuadro de diálogo no modal a partir de un recurso de plantilla de cuadro de diálogo. La macro CreateDialog usa la función CreateDialogParam.

Definición

void CreateDialogA(
  HINSTANCE hInstance,
  LPCTSTR lpName,
  HWND hWndParent,
  DLGPROC lpDialogFunc
);

Descripción

hInstance
Un manipulador al módulo que contiene la plantilla del cuadro de diálogo. Si este parámetro es NULL, entonces se usará el ejecutable actual.
lpName
La plantilla de cuadro de diálogo. Este parámetro es o bien un puntero a una cadena de caracteres terminada en cero que especifique el nombre de la plantilla del cuadro de diálogo o bien un valor entero que especifique el identificador del recurso de la plantilla de cuadro de diálogo. Si el parámetro especifica un identificador de recurso, su palabra de mayor peso debe ser cero y la de menor peso debe contener el identificador. Se puede usar la macro MAKEINTRESOURCE para crear este valor.
hWndParent
Un manipulador a la ventana a la que pertenece el cuadro de diálogo.
lpDialogFunc
Un puntero al procedimiento de diálogo. Para mayor información sobre el procedimiento de diálogo ver DialogProc.

Valor de retorno

Ninguno

Observaciones

La macro CreateDialog usa la función CreateWindowEx para crear el cuadro de diálogo. CreateDialog envía entonces un mensaje WM_INITDIALOG al procedimiento de diálogo. Si la plantilla especifica el estilo DS_SETFONT o DS_SHELLFONT, la función también envía un mensaje WM_SETFONT al procedimiento de diálogo. La función también muestra el cuadro de diálogo si la plantilla especifica el estilo WS_VISIBLE. Finalmente, CreateDialog devuelve el manipulador de ventana del cuadro de diálogo.

Después de que CreateDialog regrese, se puede usar la función ShowWindow para mostrar el cuadro de diálogo (si no es visible todavía). Para destruir el cuadro de diálogo, usar la función DestroyWindow. Para soportar la navegación a través del teclado y otras funcionalidades de los cuadros de diálogo, el bucle de mensajes para el cuadro de diálogo debe invocar a la función IsDialogMessage.

Nota: El fichero de cabecera winuser.h define CreateDialog como un alias que selecciona automáticamente la versión ANSI o Unicode de esta macro basándose en la definición de la constante UNICODE del preprocesador. Mezclar el uso de alias de codificación neutral con código que no lo sea puede producir desajustes que resultarán en errores de compilación o ejecución.