簡體   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