¿Cómo puedo crear un & # 8220; Yes To All & # 8221; ¿Botón usando WinAPI?

StackOverflow https://stackoverflow.com/questions/820633

  •  03-07-2019
  •  | 
  •  

Pregunta

Tenemos una aplicación heredada escrita en C que usa WinAPI. Nos gustaría agregar un " Sí a todos " Botón a algunos de nuestros cuadros de diálogo. Desafortunadamente, la función MessageBox existente no permite botones personalizados o títulos de botones.

¿Cuál es la mejor manera de hacerlo? ¿Hay un truco para agregar fácilmente un botón personalizado? ¿O deberíamos crear nuestro propio reemplazo de MessageBox?

¿Fue útil?

Solución 4

Terminamos simplemente creando nuestra propia plantilla de recurso de reemplazo de DIALOGEX, luego simplemente llamamos a DialogBox () y verificamos el valor de retorno.

Referencia: http://msdn.microsoft.com /library/ms644996(v=VS.85).aspx#modal_box

Otros consejos

Hay otro tipo de cuadro de mensaje en WinAPI, desde Windows 2000. Es SHMessageBoxCheck .

Le permite mostrar un MB_OKCANCEL / MB_YESNO / MB_OK -type MessageBox estándar con la opción de Nunca lo muestres de nuevo, especificando cuál es la opción predeterminada en ese caso.

Tal vez no sea exactamente lo que estás buscando, pero es bastante consistente con la interfaz de usuario de Windows.

En Vista, la mayor parte del shell " Sí a todos " los diálogos funcionan de esta manera: no hay un botón adicional que diga " Sí / No a todos " - hay una " Realizar la acción elegida en todos los ítems " casilla de verificación en su lugar.

Sin embargo, la nota en la documentación me preocupa:

  

Esta función está disponible a través de Microsoft Windows XP y Windows Server 2003. Puede modificarse o no estar disponible en versiones posteriores de Windows.

Es posible que también debas ocuparte del ajuste del texto para que sea similar a MessageBox . Además, MessageBox usa una fuente diferente en comparación con la fuente GUI predeterminada. Y no olvides reproducir el sonido cuando aparezca el cuadro de diálogo :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top