4

この方法で静的ラベルに色を付けました:

case WM_CTLCOLORSTATIC:
{
    DWORD CtrlID = GetDlgCtrlID((HWND)lParam); //Window Control ID

    if(OptionColored)
    {
        HDC hdcStatic = (HDC) wParam;
        SetTextColor(hdcStatic, RGB(255,255,255));
        SetBkColor(hdcStatic, RGB(70,70,70));
        return (INT_PTR)hBrush;
    }
}

さて、どうすればチェックボックスとグループボックスに色を付けることができますか?

編集:このコードを使用して色、背景の摩耗を変更しようとすると。文字の色はありません。

4

1 に答える 1

1

これらのメッセージで遊んでみてください:

WM_CTLCOLORBTN
WM_CTLCOLOREDIT
WM_CTLCOLORDLG
WM_CTLCOLORLISTBOX
WM_CTLCOLORSCROLLBAR
WM_CTLCOLORSTATIC //You are already using

WM_CTLCOLORBTNチェックボックスの色を処理する必要があることは知っていますが、グループボックスのチェックボックスがどれであるかはわかりません。また、グループボックスから継承するため、グループボックスでも機能するはずです。CButton

また、コードで()をチェックしていることに気づきました。それがOptionColored何であるかはわかりませんが、メッセージが目的の色のコントロールをターゲットにしているかどうかをチェックする必要があります。

したがって、チェックする代わりに、次のif(OptionColored)ようなものが必要です。

DWORD CtrlID = GetDlgCtrlID((HWND)lParam));
if (CtrlID == IDC_STATIC1) //If desired control
    {
       //Color my STATIC CONTROLE
    }
于 2013-02-26T18:09:17.770 に答える