[英]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.