代码之家  ›  专栏  ›  技术社区  ›  Ido Hadar

复选框更改文本颜色[重复]

  •  3
  • Ido Hadar  · 技术社区  · 11 年前

    背景发生了变化,但文本颜色没有变化。 这里是我的代码:

    case WM_CTLCOLORSTATIC:
    {
        DWORD CtrlID = GetDlgCtrlID((HWND)lParam); //Window Control ID
    
        if(CtrlID == IDC_CHECK_CHAT)
        {
            HDC hdcStatic = (HDC) wParam;
            SetTextColor(hdcStatic, RGB(255,255,255));
            SetBkColor(hdcStatic, RGB(70,70,70));
            return (INT_PTR)hBrush;
        }
    }
    

    资源文件:

    CONTROL         "Blah Blah Blah",IDC_CHECK_CHAT,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,72,137,10
    
    1 回复  |  直到 11 年前
        1
  •  9
  •   Jichao    11 年前

    您需要首先使用SetWindowTheme删除主题:

    HWND hwndCheckbox = GetDlgItem(_hdlg, IDC_CHECK_CHAT);
    SetWindowTheme(hwndCheckbox, L"wstr", L"wstr");
    

    在你给文本上色之前。