Gracias fernando, pero eso no es lo que busco, pues necesito que el bitmap esté centrado en el dialogo como veras en la foto:
Se trata de un cuadro de dialogo azul oscuro con el bitmap en el centro (El avion con el degradado gris) y el resto de controles y bitmap's encima.
Como verás los say's de abajo salen mal (los de arriba no son TSAY 's de FWsino TGSAY's mios transparentes). Abajo he puesto TSAY's para que veas que no salen bien. La otra flecha apunta a los botones. Y es que debería de quedar así:
He sustituido los TSAY's por TGSAY's y los bitmaps los he redibujado con degradado de fondo y estan puestos sin el transparent. Pero esa no es la solución pues debería de poder conseguir lo que quiero.
El caso es que si te das cuenta, los escudos son bitmaps, transparentes y si salen bien pues van dibujados en el mismo módulo que el fondo pero los botones van dibujados en sus respectivos controles y salen mal.
Ese es el fallo que haría falta solucionar, pues de lo contrario no puedo completar mi clase para botomes sensibles al ratón y algunas cosas más que tengo en mente. (trasnparencias, blendings, ets..., aunque algunas ya las he solucionado, fijate en la sombra de debajo del dialogo)
Por si sirve de algo, me he dado cuenta que los TSAY no funcionan cuando en el fichero de recursos se define como STATIC TEXT, sin embargo sí que se transparentan bien si vienen como BORLAND STATIC TEXT a lo mejor por ahí andan los tiros.
A ver si hay alguien capaz de solucionar este tema
Gracias.
Es es básicamente el código empleado:
...
hBit[1] := LoadBitmap( GetResources(),"AFONDO" ) <---
es el bitmapo de fondo hBit[2] := LoadBitmap( GetResources(),cEsdo ) <---
es el escudo de abajo a la izquierda hBit[3] := LoadBitmap( GetResources(),"BANCOP" ) <---
es el escudo de arriba a la derecha hBit[4] := ResBmpAlpha( "MRF_F","MRF_B" ) <---
es el repujado de debajo del avion *
...
*
DEFINE DIALOG oDMain RESNAME "RENDTO" TITLE " Rendimiento P3" COLOR 0,CLR_OBLUE
...
...
REDEFINE GSAY oGet[15] VAR aVar[15] ID 551 OF oDMain CENTER BOTTOM COLOR CLR_AZUL TRANSPARENT FONT oFont[2]
REDEFINE GSAY oGet[16] VAR aVar[16] ID 552 ... etc...
*
REDEFINE BITMAP oBot[1] NAME "IMPRIME" ID 451 OF oDMain TRANSPARENT <--- ES EL BOTON IMPRIMIR
REDEFINE BITMAP oBot[2] NAME "SALIR" ID 452 OF oDMain TRANSPARENT <--- ES EL BOTON SALIR *
oDMain:bPainted := { |hDc| PaintFond(hDc,hBit,hPen) }
oGet[1]:bLClicked := { || MovWin(oDMain,oCur) }
oDMain:lHelpIcon := .F.
ACTIVATE DIALOG oDMain CENTER ON INIT oDMain:Move(200,300,459,440)
...
...
FUNCTION PaintFond(hDc,hB,hP)
LOCAL hOPen := SelectObject(hDc,hP)
*
PalBmpDraw( hDc, 35, 4, hB[1], 0 ) TransparentBmp( hDc, 365,15, hB[2], CLR_TRANSP ) <--- COMO TransBmp PERO CALCULA EL TAMAÑO DEL BITMAP
TransparentBmp( hDc, 58, 374, hB[3] )
BlendBitmap( hDc, 185, 15, hB[4], 256 ) <--- AlphaBlend PROPIO
*
MoveTo(hDc, 007, 228)
LineTo(hDc, 449, 228)
MoveTo(hDc, 007, 331)
LineTo(hDc, 449, 331)
*
SelectObject(hDc,hOPen)
RETURN NIL
...
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55