COLORREF
次のコードを使用して、デフォルトの Windows システムの背景色を形式で取得しようとしています。
LOGBRUSH lb;
GetObject((HANDLE)(COLOR_BACKGROUND), sizeof(LOGBRUSH), &lb);
BG_COLOR = lb.lbColor;
char buff[250];
sprintf(buff, "BG_COLOR: 0x%08X;", BG_COLOR);
MessageBoxA(0, buff, "Alert!", MB_OK | MB_SYSTEMMODAL);
ただし、ウィンドウのクラスを次のように設定している間、0x003E28F4
どちらが赤かを返します。hbrBackground
(HBRUSH)COLOR_BACKGROUND
WndClass.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
ウィンドウの背景色は、灰色(WinXP の場合) と 16 進数0x00C8D0D4
(gimp で確認) で表示されます。
私の知る限り、同じでは0x003E28F4
あり0x00C8D0D4
ません
これは何が原因ですか?デフォルトの背景色を RGB/COLORREF 形式で取得するにはどうすればよいですか?