[C con Clase] Consulta

Grimas Cristian grimascristian en arnet.com.ar
Lun Ene 22 05:00:16 CET 2007


Muchas gracias, me es de utilidad. Cuando tenga algo de código listo y
andando se los envió para que ayude a otro.

Saludos cordiales, Cristian
-----Mensaje original-----
De: cconclase-bounces en listas.conclase.net
[mailto:cconclase-bounces en listas.conclase.net] En nombre de Steven
Davidson
Enviado el: Sábado, 20 de Enero de 2007 06:06 p.m.
Para: cconclase en listas.conclase.net
Asunto: Re: [C con Clase] Consulta

Hola Cristian,

El pasado 2007-01-20 19:53:36, Cristian escribió:

C>             Trabajo en Builder C++.  Y quiero empezar a darle a mis
C> aplicaciones un toque tecnológico. Y no los clásicos botones de
Windows…
C> quizás alguien que lea las listas pueda tener idea de cómo hacer
esto.
C> Ya sea agregando Skins. O botones con efectos u otra cosa interesante
C> que mejore la estética de los programas
C>             

Para cambiar el aspecto de un botón, como por ejemplo, agregar una
imagen, crea el botón con el estilo 'BS_OWNERDRAW'. Esto implica que
tendrás que procesar los mensajes 'WM_MEASUREITEM' y 'WM_DRAWITEM'.

Para tener comportamientos no estándares, tendrás que hacer una subclase
basándote en la clase de ventana para el botón. Esto se hace guardando
el procedimiento de ventana original, para luego aplicar el nuestro que
hemos creado. Por ejemplo,

// Nuestro Procedimiento de Ventana para cambiar los botones
INT WINAPI MiBotonProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM
lParam );

WNDPROC wpBotonOrig;
...
// Creamos la subclase para los botones
wpBotonOrig = (WNDPROC)SetWindowLong( hBoton, GWL_WNDPROC, (LONG)
MiBotonProc ); 

INT WINAPI MiBotonProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM
lParam )
{
  // Hacer los cambios
  ...

  // Volver al comportamiento "normal" de un botón
  return CallWindowProc( wpBotonOrig, hwnd, uMsg, wParam, lParam );
}


Espero que esto te sirva.

Steven
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.ne
t
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ





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