bpe*_*kes 3 c++ winapi mfc wtl
我在使用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;
}
Run Code Online (Sandbox Code Playgroud)
这就是它最终在屏幕上看起来的样子.控件本身比它中的文本大,但我不知道如何让其余的控件用黑色背景绘制.看起来将背景颜色设置为黑色只会影响文本显示的区域.关于我可能做错的任何想法?
发现我的错误.我在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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |