Color degradado en dialogos
Posted: Tue Jul 29, 2008 1:00 pm
¿Cómo puedo establecer un color degradado en el fondo de un cuadro de dialogo?
He probado esto que he visto en el foro
El problema es que en el dialogo existen controles radios buttons y checkbox, y estós no cogen el color de fondo.
También he leido que la forma correcta es teniendo un degradado en un bitmap y estableciendo el fondo con
Pero el problema es que tendría que crear un bitmap por cada dialogo, si estos cambian de largo.
He probado esto que he visto en el foro
- Code: Select all Expand view
oDlg:bPainted := {|| Gradiente(oDlg)}
Proc Gradiente( oDlg )
local nGradient, oBrush
local aRect := GetClientRect( oDlg:hWnd )
local hDC := oDlg:hDc
nGradient := Gradient(hDc, { aRect[1], aRect[2], aRect[3], aRect[4] }, nRgb(255,255,255), nRgb(224,236,255), .T. )
DEFINE BRUSH oBrush COLOR nGradient
FillRect( hDC, aRect, oBrush:hBrush )
ReleaseDC( oDlg:hWnd, hDC )
return
El problema es que en el dialogo existen controles radios buttons y checkbox, y estós no cogen el color de fondo.
También he leido que la forma correcta es teniendo un degradado en un bitmap y estableciendo el fondo con
- Code: Select all Expand view
DEFINE BRUSH oBrush FILENAME "C:\fwh\bitmaps\backgrnd\gradien.bmp"
Define Dialog oDlg Title cTitle Resource "MSGGET_TXT" TRANSPARENT Brush oBrush
Pero el problema es que tendría que crear un bitmap por cada dialogo, si estos cambian de largo.