WM_CTLCOLORBTN 不会改变按钮的背景颜色

时间:2021-05-12 16:32:01

标签: windows user-interface winapi

我尝试更改 UI 中按钮的默认颜色。

这是我的 CallBacl 函数

LRESULT CALLBACK WindowProcedure(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
    switch (msg)
    {
    case WM_COMMAND:
        switch (wp)
        {
        case FILE_MENU_NEW:
            MessageBeep(MB_ICONINFORMATION);
            break;
        }
        break;
    case WM_CREATE:
        AddMenus(hWnd);
        AddControls(hWnd);
        break;

    case WM_CTLCOLOREDIT:
    {
        if (hEdit == (HWND)lp)
        {
            HDC hdcEdit = (HDC)wp;
            SetTextColor(hdcEdit, RGB(255, 255, 255));
            SetBkColor(hdcEdit, RGB(48, 56, 66));
            return (INT_PTR)hBrush1;
        }
    }

    case WM_CTLCOLORBTN:
    {
        if (hButton_ok == (HWND)lp)
        {
            HDC hdcButton_ok = (HDC)wp;
            SetTextColor(hdcButton_ok, RGB(255, 255, 255));
            SetBkColor(hdcButton_ok, RGB(87, 102, 110));
            return (INT_PTR)hBrush;
        }
    }
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProcW(hWnd, msg, wp, lp);
    }
}

现在案例 WM_CTLCOLOREDIT 正确更改了我的文本输入对话框的背景颜色, 为什么 WM_CTLCOLORBTN 会失败?

0 个答案:

没有答案
相关问题