Enrico,
like Anser, I use Vista as well.
I call the Gradient-painting ON INIT using Function GRADIENTBRUSH
Pushing the < Test-button >, opens Dialog 2
Using a 2. Dialog, moving over Dialog 1
It is not a XP-problem. Maybe a change in Function < GRADIENTBRUSH > needed ?
#include "FiveWin.ch"
FUNCTION MAIN()
LOCAL oDlg1
DEFINE DIALOG oDlg1
@ 1, 1 BUTTON "Test";
ACTION TEST()
ACTIVATE DIALOG oDlg1 CENTER ;
ON INIT ( GRADBRUSH( oDlg1, { { 1, 14198567, 16117445 } }, .T. ), ;
oDlg1:Move( 110, 460, 430, 215, .f. ) )
RETURN NIL
// -----------------------
FUNCTION TEST()
LOCAL oDlg2
DEFINE DIALOG oDlg2
ACTIVATE DIALOG oDlg2 CENTER ;
ON INIT ( GRADBRUSH( oDlg2, { { 1, 128, 16117445 } }, .T. ), ;
oDlg2:Move( 200, 500, 430, 215, .f. ) )
*ON INIT oDlg2:SendMsg( WM_PAINT )
RETURN NIL
// -------------------------------
FUNCTION GradBrush( oDlg, aColors, lPos )
local hDC, hBmp, hBmpOld, oBrush
if Empty( oDlg:oBrush:hBitmap )
hDC = CreateCompatibleDC( oDlg:GetDC() )
hBmp = CreateCompatibleBitMap( oDlg:hDC, oDlg:nWidth, oDlg:nHeight )
hBmpOld = SelectObject( hDC, hBmp )
GradientFill( hDC, 0, 0, oDlg:nHeight, oDlg:nWidth, aColors, lPos )
DeleteObject( oDlg:oBrush:hBrush )
oDlg:oBrush:hBitmap = hBmp
oDlg:oBrush:hBrush = CreatePatternBrush( hBmp )
SelectObject( hDC, hBmpOld )
oDlg:ReleaseDC()
endif
RETURN NIL
A working Solution using
ON PAINT only with
GradientFill :
( GRADIENTBRUSH was created, to solve the Transparent-Problem )
#include "FiveWin.ch"
Static hDC
FUNCTION MAIN()
LOCAL oDlg1
DEFINE DIALOG oDlg1
@ 1, 1 BUTTON "Test";
ACTION TEST()
ACTIVATE DIALOG oDlg1 ;
ON PAINT DLG_GRAD( hDC, oDlg1, { { 1, 14198567, 16117445 } }, .T. ) ;
ON INIT oDlg1:Move( 110, 460, 430, 215, .f. )
RETURN NIL
// -----------------
FUNCTION TEST()
LOCAL oDlg2
DEFINE DIALOG oDlg2
ACTIVATE DIALOG oDlg2 CENTER ;
ON PAINT DLG_GRAD( hDC, oDlg2, { { 1, 128, 16117445 } }, .T. ) ;
ON INIT oDlg2:Move( 200, 500, 430, 215, .f. )
RETURN NIL
// -------------- GRADIENT --------------------
STATIC FUNCTION DLG_GRAD( hDC, oDlg, aGrad, lPos )
GradientFill( hDC, 0, 0, oDlg:nHeight, oDlg:nWidth, aGrad, lPos )
RELEASEDC( hDC )
RETURN NIL
Best Regards
Uwe
