FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Mensaje WM_DRAWITEM
Buenas, intento hacer que todos los controles de un formulario aparezcan de forma diferente, mediante el mensaje WM_DRAWITEM. He leído la ayuda de windows sobre este mensaje pero no logro aclararme.
No estoy muy al tanto de la captura de mensajes, pero tras hacer pruebas (no muy satisfactorias) con el mensaje WM_PAINT, descubrí el WM_DRAWITEM. Con WM_DRAWITEM puedo, por ejemplo, pintar un TBitBtn a mis anchas, algo bastante complicado utilizando WM_PAINT. El caso es que funciona perfectamente cuando el padre del TBitBtn es el propio formulario, pero si el padre es un TPanel ya no se ejecuta. ¿Qué es lo que pasa, cómo lo hago? Gracias de antemano y saludox |
#2
|
||||
|
||||
Cita:
Supongo que otra posibilidad es que estes capturando el mensaje desde el formulario, que al ser el parent del boton, puede recibirlo. Al ser el panel el parent, el formulario ya no recibirá el mensaje, sino el panel, por lo que el manejador del mismo debiera estar en el panel, y no en el formulario. Esto podria funcionar, pero por supuesto no desmiente lo dicho al inicio. Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
Revisando por encima el código de TBitBtn parece ser que el control padre, al recibir el mensaje WM_DRAWITEM, manda el mensaje CN_DRAWITEM al control adecuado. En el caso de un BitBtn, al recibir CN_DRAWITEM simplemente llama a su método DrawItem que, desafortunadamente, no es virtual.
De cualquier forma quizá lo más adecuado sería heredar de TBitBtn una nueva componente y crearle un manejador de CN_DRAWITEM. De esta manera ya no importará en dónde se inserte el botón. // Saludos |
#4
|
||||
|
||||
Pero para que tanta vuelta.... Simplemente redefiní el método paint, que será llamado cada vez que tenga que dibujarse el botón, y listo.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|