Función MessageBoxW (winuser.h)
Muestra un cuadro de diálogo modal que contiene un icono del sistema, un conjunto de botones y un breve mensaje específico de la aplicación, como la información de estado o error. El cuadro de mensaje devuelve un valor entero que indica qué botón ha clic el usuario.
Sintaxis
int MessageBoxW(
[in, optional] HWND hWnd,
[in, optional] LPCWSTR lpText,
[in, optional] LPCWSTR lpCaption,
[in] UINT uType
);
Parámetros
[in, optional] hWnd
Tipo: HWND
Identificador de la ventana de propietario del cuadro de mensaje que se va a crear. Si este parámetro es NULL, el cuadro de mensaje no tiene ninguna ventana de propietario.
[in, optional] lpText
Tipo: LPCTSTR de
Mensaje que se va a mostrar. Si la cadena consta de más de una línea, puede separar las líneas mediante un carácter de retorno de carro o avance de línea entre cada línea.
[in, optional] lpCaption
Tipo: LPCTSTR de
Título del cuadro de diálogo. Si este parámetro es null, el título predeterminado es Error.
[in] uType
Tipo: UINT
Contenido y comportamiento del cuadro de diálogo. Este parámetro puede ser una combinación de marcas de los siguientes grupos de marcas.
Para indicar los botones mostrados en el cuadro de mensaje, especifique uno de los siguientes valores.
Valor | Significado |
---|---|
|
El cuadro de mensaje contiene tres botones de inserción: Anular, Reintentary Omitir. |
|
El cuadro de mensaje contiene tres botones de inserción: Cancelar, Intentar de nuevo, Continuar. Use este tipo de cuadro de mensaje en lugar de MB_ABORTRETRYIGNORE. |
|
Agrega un botón ayuda |
|
El cuadro de mensaje contiene un botón de inserción: Aceptar. Este es el valor predeterminado. |
|
El cuadro de mensaje contiene dos botones de inserción: Aceptar y Cancelar. |
|
El cuadro de mensaje contiene dos botones de inserción: Reintentar y Cancelar. |
|
El cuadro de mensaje contiene dos botones de inserción: Sí y No. |
|
El cuadro de mensaje contiene tres botones de inserción: Sí, Noy Cancelar. |
Para mostrar un icono en el cuadro de mensaje, especifique uno de los valores siguientes.
Para indicar el botón predeterminado, especifique uno de los valores siguientes.
Para indicar la modalidad del cuadro de diálogo, especifique uno de los valores siguientes.
Para especificar otras opciones, use uno o varios de los valores siguientes.
Valor | Significado |
---|---|
|
Igual que el escritorio de la estación de ventana interactiva. Para obtener más información, consulte Estaciones de ventana.
Si el escritorio de entrada actual no es el escritorio predeterminado, cuadro de mensajes no devuelve hasta que el usuario cambie al escritorio predeterminado. |
|
El texto está justificado a la derecha. |
|
Muestra el texto del mensaje y el título mediante el orden de lectura de derecha a izquierda en los sistemas hebreo y árabe. |
|
El cuadro de mensaje se convierte en la ventana de primer plano. Internamente, el sistema llama a la función SetForegroundWindow para el cuadro de mensaje. |
|
El cuadro de mensaje se crea con el estilo de ventana WS_EX_TOPMOST. |
|
El autor de la llamada es un servicio que notifica al usuario de un evento. La función muestra un cuadro de mensaje en el escritorio activo actual, incluso si no hay ningún usuario que haya iniciado sesión en el equipo.
Terminal Services: Si el subproceso que llama tiene un token de suplantación, la función dirige el cuadro de mensaje a la sesión especificada en el token de suplantación. Si se establece esta marca, el parámetro hWnd debe ser NULL. Esto es para que el cuadro de mensaje pueda aparecer en un escritorio distinto del escritorio correspondiente al hWnd. Para obtener información sobre las consideraciones de seguridad con respecto al uso de esta marca, consulte Interactive Services. En concreto, tenga en cuenta que esta marca puede generar contenido interactivo en un escritorio bloqueado y, por tanto, debe usarse solo para un conjunto muy limitado de escenarios, como el agotamiento de recursos. |
Valor devuelto
Tipo: int
Si un cuadro de mensaje tiene un botón Cancelar
Si se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Si la función se ejecuta correctamente, el valor devuelto es uno de los siguientes valores de elemento de menú.
Código y valor devueltos | Descripción |
---|---|
|
Se seleccionó el botón Anular. |
|
Se seleccionó el botón Cancelar |
|
Se seleccionó el botón Continuar. |
|
Se seleccionó el botón Omitir |
|
Se seleccionó el botón No. |
|
Se seleccionó el botón Aceptar. |
|
Se seleccionó el botón Reintentar. |
|
Se seleccionó el botón Probar de nuevo. |
|
Se seleccionó el botón Sí. |
Observaciones
Los siguientes iconos del sistema se pueden usar en un cuadro de mensaje estableciendo el parámetro uType en el valor de marca correspondiente.
Icono | Valores de marca |
---|---|
icono de | MB_ICONHAND, MB_ICONSTOPo MB_ICONERROR |
Icono de | MB_ICONQUESTION |
Icono de | MB_ICONEXCLAMATION o MB_ICONWARNING |
Icono de | MB_ICONASTERISK o MB_ICONINFORMATION |
Agregar dos marcas de derecha a izquierda (RLM), representadas por el carácter de formato Unicode U+200F, al principio de una cadena de presentación cuadro de mensajes se interpreta mediante el motor de representación cuadro de mensajes para que el orden de lectura del cuadro de mensajes se represente como de derecha a izquierda (RTL).
Cuando se usa un cuadro de mensaje modal del sistema para indicar que el sistema tiene poca memoria, las cadenas a las que apunta el lpText y los parámetros lpCaption no deben tomarse de un archivo de recursos porque puede producirse un error al intentar cargar el recurso.
Si crea un cuadro de mensaje mientras está presente un cuadro de diálogo, use un identificador para el cuadro de diálogo como parámetro hWnd. El parámetro hWnd no debe identificar una ventana secundaria, como un control en un cuadro de diálogo.
Ejemplos
En el ejemplo siguiente, la aplicación muestra un cuadro de mensaje que solicita al usuario una acción después de que se haya producido una condición de error. El cuadro de mensaje muestra el mensaje que describe la condición de error y cómo resolverla. El estilo MB_CANCELTRYCONTINUE dirige cuadro de mensajes para proporcionar tres botones con los que el usuario puede elegir cómo continuar. El estilo MB_DEFBUTTON2 establece el foco predeterminado en el segundo botón del cuadro de mensaje, en este caso, el botón Intentar de nuevo.
int DisplayResourceNAMessageBox()
{
int msgboxID = MessageBox(
NULL,
(LPCWSTR)L"Resource not available\nDo you want to try again?",
(LPCWSTR)L"Account Details",
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
switch (msgboxID)
{
case IDCANCEL:
// TODO: add code
break;
case IDTRYAGAIN:
// TODO: add code
break;
case IDCONTINUE:
// TODO: add code
break;
}
return msgboxID;
}
En la imagen siguiente se muestra la salida del ejemplo de código anterior:
cuadro mensaje dePara obtener otro ejemplo de cuadro de mensaje, vea Mostrar un cuadro de mensaje.
Nota
El encabezado winuser.h define MessageBox como un alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winuser.h (incluya Windows.h) |
biblioteca de |
User32.lib |
DLL de |
User32.dll |
conjunto de API de |
ext-ms-win-ntuser-dialogbox-l1-1-0 (introducido en Windows 8) |
Consulte también
conceptual de
messageBeep de
MessageBoxEx de
otros recursos
de referencia de