Marcelo,
Lo que quieres hacer al algo más complicado de lo que parece.
Cada control es responsable de dibujar su propia imagen. El brush se utiliza para borrar la superficie del control antes de dibujar en él lo que sea.
Cuando queremos que sea transparente, se trata de que el fondo no se borre y en su lugar se copie la imagen que haya debajo del control. Pero, si existe otro control debajo (para formar una X por ejemplo) hay que combinar las imágenes de ambos.
El método EraseBkGnd() (Erase background) lo podemos declarar virtual, para que no se borre nada:
METHOD EraseBkGnd() VIRTUAL
Y en el método Paint() copiaríamos la imagen que hay debajo:
- Code: Select all Expand view
METHOD Paint() CLASS tfig
... copiar la imagen que hay debajo del control al hDC de este control...
moveTo( ::hDC, 1, 1 )
LineTo( ::hDC, ::nWidth, ::nHeight )
return nil
La función para copiar desde un hDC a otro hDC es BitBlt(). Sigo...