DialogBoxParam
La función DialogBoxParam crea un cuadro de diálogo modal a partir de un recurso de plantilla de cuadro de diálogo. Antes de mostrar el cuadro de diálogo, la función pasa un valor definido por la aplicación al procedimiento del cuadro de diálogo mediante el parámetro lParam del mensaje WM_INITDIALOG. La aplicación puede usar ese valor para inicializar los controles del cuadro de diálogo.
Sintaxis
int DialogBoxParam( HANDLE hInstance, // manipulador a la instancia de la aplicación LPCTSTR lpTemplate, // identifica el recurso de cuadro de diálogo HWND hWndParent, // manipulador a la ventana propietaria DLGPROC lpDialogFunc, // dirección del procedimiento de diálogo LPARAM dwInitParam // valor de inicialización );
Parámetros
hInstance: identifica una instancia del módulo cuyo fichero ejecutable contiene la plantilla del cuadro de diálogo.
lpTemplate: identifica la plantilla del cuadro de diálogo. Este parámetro puede ser la dirección de una cadena de caracteres terminada en cero que especifique el nombre de la plantilla o un valor entero que especifique el identificador de recurso de la plantilla. Si el parámetro se refiere a un identificador de recurso, su palabra de mayor peso debe ser cero y la de menor peso contendrá el identificador. Se puede usar la macro MAKEINTRESOURCE para crear este valor.
hWndParent: identifica la ventana a la que pertenece el cuadro de diálogo.
lpDialogFunc: apunta al procedimiento de diálogo. Para más información ver la función callback DialogProc.
dwInitParam: especifica el valor a pasar al cuadro de diálogo en el parámetro lParam del mensaje WM_INITDIALOG.
Valor de retorno
Si la función tiene éxito, el valor de retorno será el parámetro nResult en la llamada a la función EndDialog usada para terminar el diálogo.
Si la función fracasa, el valor de retorno es -1.
Observaciones
La función DialogBoxParam usa la función CreateWindowEx para crear el cuadro de diálogo. DialogBoxParam envía entonces un mensaje WM_INITDIALOG (y un mensaje WM_SETFONT si la plantilla especifica el estilo DS_SETFONT) al procedimiento de diálogo. La función muestra el cuadro de diálogo (independientemente de si la plantilla especifica el estilo WS_VISIBLE), desactiva la ventana propietaria y comienza su propio bucle de mensajes para recuperar y procesar los mensajes del cuadro de diálogo.
Cuando el procedimiento de diálogo llama a la función EndDialog, DialogBoxParam destruye el cuadro de diálogo, termina el bucle de mensajes, activa la ventana padre (si antes estaba activa) y devuelve el parámetro nResult suministrado por el procedimiento de diálogo cuando llamó a EndDialog.
Sólo en Windows 95: el sistema puede soportar un máximo de 16364 manipuladores de ventanas.