[C con Clase] Asignar una Imagen a un boton.

Steven Richard Davidson stevenrichard.davidson en gmail.com
Lun Nov 5 19:02:33 CET 2007


Hola Wally,

On 11/5/07, Wally <aypotua en gmail.com> wrote:
> Hola a todos!!!
> Espero no joder demacido!
> Tengo una pregunta: Como puedo asignar una imagen a un control button
> que se encuentra en un cuadro de dialogo que se crea por medio de un
> archivo de recursos?

Primeramente, tendrás que cambiar el estilo del botón para que acepte
una imagen. Esto se hace modificando la información de la clase del
botón con el estilo 'BS_BITMAP'. Para obtener esta información, usamos
la función 'GetClassLong()'. Posteriormente, invocaremos
'SetClassLong()' para establecer el nuevo estilo. Por ejemplo,

HWND hBoton = GetDlgItem( hDialogo, IDC_BUTTON );  // Obtenemos el
HWND del botón
DWORD dwEstilosBoton = GetClassLong( hBoton, GCL_STYLE );
SetClassLong( hBoton, GCL_STYLE, dwEstilosBoton & BS_BITMAP );

Ahora pasamos el mapa de bits al botón a través del mensaje
'BM_SETIMAGE'. Por ejemplo,

SendMessage( hBoton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP,
                       (LPARAM) hbmBoton );

Podríamos usar 'SendDlgItemMessage()' en lugar de 'SendMessage()',
especialmente si no tenemos el manipulador del botón. Por ejemplo,

SendDlgItemMessage( hDialogo, IDC_BOTON, BM_SETIMAGE,
                                  (WPARAM) IMAGE_BITMAP, (LPARAM) hbmBoton );


Espero que esto te sirva.

Steven




Más información sobre la lista de distribución Cconclase