为什么SetTextColor还会更改整个StaticEdtBox

时间:2015-08-05 09:22:10

标签: c++ winapi gdi+ win32gui

我在收到WM_CTLCOLORSTATIC时尝试更改文字颜色。

enter image description here

 LRESULT ProcessWindowMessage(_In_ HWND hWnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam)
        {
            switch (uMsg)
            {
            case WM_CTLCOLORSTATIC:
                ::SetTextColor((HDC)wParam, RGB(m_color.red, m_color.green, m_color.blue));
                ::SetBkMode((HDC)wParam, TRANSPARENT);
                return (LRESULT)GetStockObject(DKGRAY_BRUSH);
            }

            return m_orgWndProc(hWnd, uMsg, wParam, lParam);
        }

正如您所看到的,“只是一个测试”的颜色。改变了,但随之而来的是整个盒子的背景也发生了变化。

我尝试过几乎所有GetStockObject()组合,包括

return (LRESULT)GetStockObject(COLOR_BACKGROUND + number)

&安培;

GetCurrentObject((HDC)wparam,OBJ_BRUSH)

我要说的是,这些命令以某种方式操纵了背景的颜色,但从未与过去的默认灰度值相匹配。

我在这里缺少什么?

0 个答案:

没有答案