[colors] Scrollbar=192 192 192 Background=0 128 128 ActiveTitle=0 0 128 InactiveTitle=128 128 128 Menu=192 192 192 Window=255 255 255 WindowFrame=0 0 0 MenuText=0 0 0 WindowText=0 0 0 TitleText=255 255 255 ActiveBorder=192 192 192 InactiveBorder=192 192 192 AppWorkspace=128 128 128 Hilight=0 0 128 HilightText=255 255 255 ButtonFace=192 192 192 ButtonShadow=128 128 128 GrayText=128 128 128 ButtonText=0 0 0 InactiveTitleText=192 192 192 ButtonHilight=255 255 255 ButtonDkShadow=0 0 0 ButtonLight=223 223 223 InfoText=0 0 0 InfoWindow=255 255 225 ButtonAlternateFace=181 181 181 HotTrackingColor=0 0 255 GradientActiveTitle=192 192 192 GradientInactiveTitle=255 255 255これは、Windows 98 SE の WIN.INI ファイルのシステムカラーの部分です
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {
HDC hdc;
PAINTSTRUCT ps;
int iCount , iWidth = 0;
static const int syscolor[] = {
COLOR_3DDKSHADOW , COLOR_3DFACE ,
COLOR_3DHILIGHT , COLOR_3DLIGHT ,
COLOR_3DSHADOW , COLOR_ACTIVEBORDER ,
COLOR_ACTIVECAPTION , COLOR_APPWORKSPACE ,
COLOR_BACKGROUND , COLOR_BTNTEXT ,
COLOR_CAPTIONTEXT , COLOR_GRAYTEXT ,
COLOR_HIGHLIGHT , COLOR_HIGHLIGHTTEXT ,
COLOR_INACTIVEBORDER , COLOR_INACTIVECAPTION ,
COLOR_INFOBK , COLOR_INFOTEXT ,
COLOR_MENU , COLOR_MENUTEXT ,
COLOR_SCROLLBAR , COLOR_WINDOW ,
COLOR_WINDOWFRAME , COLOR_WINDOWTEXT
};
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd , &ps);
SelectObject(hdc , GetStockObject(NULL_PEN));
for(iCount = 0 ; iCount < sizeof(syscolor) / sizeof(int) ; iCount++) {
SelectObject(hdc , CreateSolidBrush(GetSysColor(syscolor[iCount])));
Rectangle(hdc , iWidth , 0 , iWidth + 20 , 200);
DeleteObject(SelectObject(hdc , GetStockObject(WHITE_BRUSH)));
iWidth += 20;
}
EndPaint(hwnd , &ps);
return 0;
}
return DefWindowProc(hwnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hwnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT("KITTY");
if (!RegisterClass(&winc)) return -1;
hwnd = CreateWindow(
TEXT("KITTY") , TEXT("Kitty on your lap") ,
WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
CW_USEDEFAULT , CW_USEDEFAULT ,
CW_USEDEFAULT , CW_USEDEFAULT ,
NULL , NULL , hInstance , NULL
);
if (hwnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) DispatchMessage(&msg);
return msg.wParam;
}

BOOL WINAPI SetSysColors( int cElements, CONST INT *lpaElements, CONST COLORREF *lpaRgbValues );nElements は、設定する要素の数を指定します
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {
HDC hdc;
PAINTSTRUCT ps;
static const COLORREF newSysColor[] = { RGB(0xFF , 00 , 00) };
static const int setSysColor[] = { COLOR_BTNFACE };
static COLORREF defSysColor[1];
switch (msg) {
case WM_DESTROY:
SetSysColors(1 , setSysColor , defSysColor);
PostQuitMessage(0);
return 0;
case WM_CREATE:
defSysColor[0] = GetSysColor(setSysColor[0]);
SetSysColors(1 , setSysColor , newSysColor);
return 0;
}
return DefWindowProc(hwnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hwnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT("KITTY");
if (!RegisterClass(&winc)) return -1;
hwnd = CreateWindow(
TEXT("KITTY") , TEXT("Kitty on your lap") ,
WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
CW_USEDEFAULT , CW_USEDEFAULT ,
CW_USEDEFAULT , CW_USEDEFAULT ,
NULL , NULL , hInstance , NULL
);
if (hwnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) DispatchMessage(&msg);
return msg.wParam;
}

| 定数 | 解説 |
|---|---|
| COLOR_3DDKSHADOW | 3D オブジェクトの暗い影の色 |
| COLOR_3DFACE, COLOR_BTNFACE | 3D オブジェクトの表面色 |
| COLOR_3DHILIGHT, COLOR_3DHIGHLIGHT, COLOR_BTNHILIGHT, COLOR_BTNHIGHLIGHT | 3D オブジェクトの最も明るい色 (光源方向の縁用) |
| COLOR_3DLIGHT | 3D オブジェクトの明るい色 (光源方向の縁用) |
| COLOR_3DSHADOW, COLOR_BTNSHADOW | 3D オブジェクトの影の色 (光源の反対方向の縁用) |
| COLOR_ACTIVEBORDER | アクティブウィンドウの境界の色 |
| COLOR_ACTIVECAPTION | アクティブウィンドウのタイトルバーの色 |
| COLOR_APPWORKSPACE | マルチドキュメントインターフェイス (MDI) アプリケーションの背景色 |
| COLOR_BACKGROUND, COLOR_DESKTOP | デスクトップの色 |
| COLOR_BTNTEXT | プッシュボタンのテキストの色 |
| COLOR_CAPTIONTEXT | アクティブウィンドウのタイトルバーのテキストの色 |
| COLOR_GRAYTEXT | 淡色状態 (無効状態) のテキストの色 |
| COLOR_HIGHLIGHT | コントロール内における選択された項目の色 |
| COLOR_HIGHLIGHTTEXT | コントロール内における選択された項目のテキストの色 |
| COLOR_INACTIVEBORDER | 非アクティブウィンドウの境界色 |
| COLOR_INACTIVECAPTION | 非アクティブウィンドウのタイトルバーのテキストの色 |
| COLOR_INFOBK | ツールチップコントロールの背景色 |
| COLOR_INFOTEXT | ツールチップコントロールのテキストの色 |
| COLOR_MENU | メニューの背景色 |
| COLOR_MENUTEXT | メニュー内のテキストの色 |
| COLOR_SCROLLBAR | スクロールバーの軸の色 |
| COLOR_WINDOW | ウィンドウの背景色 |
| COLOR_WINDOWFRAME | ウィンドウの枠の色 |
| COLOR_WINDOWTEXT | ウィンドウ内のテキストの色 |
BOOL WINAPI SetSysColors( int cElements, CONST INT *lpaElements, CONST COLORREF *lpaRgbValues );システムカラーを設定します