繁体   English   中英

CStatic问题的背景颜色

[英]Background color of CStatic issue

我在使用WTL设置CStatic的背景颜色时遇到问题(我猜我的MFC也有同样的问题)

我有一个黑色背景的窗口,它有一个源自CStatic的控件。 我正在通过WM_CTLCOLORSTATIC消息设置颜色。 我基本上工作,但控件中有文字的部分显示为白色。

这是回调中的代码:

LRESULT CReportResults::OnCtrColorStatic(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
    if ((HWND)lParam == m_wndLoadingLabel.m_hWnd)
    {
        HDC     hDC = (HDC)wParam;

        SetBkColor(hDC, APP_COLOR_BACKGROUND);
        SetTextColor(hDC, APP_COLOR_TEXT);
    }
    return 0;
}

这就是它最终在屏幕上看起来的样子。 控件本身比它中的文本大,但我不知道如何让其余的控件用黑色背景绘制。 看起来将背景颜色设置为黑色只会影响文本显示的区域。 关于我可能做错的任何想法?

这就是它的样子

发现我的错误。 我在OnCtrColorStatic处理程序中返回零。 我切换到返回一个用于应用程序背景颜色的画笔,现在一切正常。

LRESULT CReportResults::OnCtrColorStatic(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
    if ((HWND)lParam == m_wndLoadingLabel.m_hWnd)
    {
        HDC     hDC = (HDC)wParam;

        SetBkColor(hDC, APP_COLOR_BACKGROUND);
        SetTextColor(hDC, APP_COLOR_TEXT);
    }
    return (LRESULT)g_app.background_brush;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM