Win32设置窗口文本控件、edit控件的背景色和文本颜色

⌚Time: 2024-04-19 14:06:33

👨‍💻Author: Jack Ge

效果

响应win32窗体的WM_CTLCOLORSTATIC消息可以处理控件的文本颜色等

设置的是控件的文本颜色、

文本背景色、

控件背景色三个地方。

在窗体过程函数里进行设置


LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

{

    switch (uMsg)

    {

    ...

    case WM_CTLCOLORSTATIC://静态文本颜色

        {

            //获取设备上下文

            HDC hdcStatic = (HDC)wParam;

            //不能设置背景透明,否则选择文本会有颜色问题

            //SetBkMode(hdcStatic, TRANSPARENT);

            //文本颜色

            SetTextColor( hdcStatic, RGB(44, 222,0) );

            //文本背景色

            SetBkColor( hdcStatic, RGB(0,0,0) );

            //返回画刷,控件背景色

            return (LRESULT)GetStockObject(NULL_BRUSH);

        }

        //返回正常的窗体背景

        //return (BOOL)CreateSolidBrush (GetSysColor(COLOR_WINDOW));

        break;

    }

    return DefWindowProc(hwnd, uMsg, wParam, lParam);

}