Jeff Barnes wrote:How can I change just the window title bar to a different color?
Hi Jeff:
Here a little working sample about changing system colors:
#include "FiveWin.ch"
#define COLOR_ACTIVECAPTION 2
#define COLOR_GRADIENTACTIVECAPTION 27
function Main()
local oDlg, ;
nColor1 := GetSysColor( COLOR_ACTIVECAPTION ), ;
nColor2 := GetSysColor( COLOR_GRADIENTACTIVECAPTION )
DEFINE DIALOG oDlg From 00,00 to 400,500 TITLE "System Colors" PIXEL OF oDlg COLORS CLR_WHITE,CLR_WHITE
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT ChangeSysColors( 2, { COLOR_ACTIVECAPTION, COLOR_GRADIENTACTIVECAPTION }, { CLR_HRED, CLR_HGREEN } )
ChangeSysColors( 2, { COLOR_ACTIVECAPTION, COLOR_GRADIENTACTIVECAPTION }, { nColor1, nColor2 } )
Return nil
#pragma BEGINDUMP
#include <Windows.h>
#include <hbApi.h>
#include <clipApi.h>
#include <StdLib.h>
HB_FUNC( CHANGESYSCOLORS )
{
int iEle, iItems = _parni( 1 ) ;
int aiElemen[ 28 ] ;
COLORREF alColors[ 28 ] ;
for( iEle = 0 ; iEle <= ( iItems - 1 ) ; iEle++ )
{
aiElemen[ iEle ] = _parni( 2, ( iEle + 1 ) ) ;
alColors[ iEle ] = _parnl( 3, ( iEle + 1 ) ) ;
}
SetSysColors( iItems, aiElemen, alColors ) ;
}
#pragma ENDDUMP
Notice: It doesn't work for window title bar with themed windows
Regards.
Manuel Mercado