Pregunta

Mi programa tiene varios subprocesos. Estoy utilizando cuadro de mensaje para mostrar información al usuario. ¿Hay alguna forma (o una alternativa al cuadro de mensaje) que puedo tener otra actualización hilo / cambiar el texto de la pantalla de mensajes de la caja, mientras que el cuadro de mensaje es fija en la pantalla y visible por el usuario?

¿Fue útil?

Solución

El uso de ganchos con rosca específica a través de GetCurrentThreadId () y SetWindowsHookEx (), puede conectar los mensajes que MessageBox () recibe internamente, así como a tener acceso a identificador de ventana principal del diálogo, que luego gana el acceso a toda la controles secundarios del diálogo. A continuación, puede personalizar el cuadro de diálogo y su control, según sea necesario. Esta técnica se utiliza comúnmente para la implementación de los cuadros de diálogo de cierre automático (antes MessageBoxTimeout () se introdujo), personalizar el texto de los botones, etc.

Otros consejos

Si está utilizando un cuadro de mensaje de Win32 estándar no creo que hay alguna manera de cambiar el texto una vez que la caja ya se muestra (se introduce un suministro de mensajes modal).

Yo sugeriría a crear su propia ventana que escucha mensajes / actualizaciones de sus otros hilos. De esa manera usted está en control.

No creo que hay una manera directa de hacer esto, que probablemente se podría tratar de obtener el identificador de ventana, pero esto es demasiado complicado. Su mejor opción es crear su propio cuadro de diálogo para que usted tiene control total sobre él.

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