gpt4 book ai didi

c++ - CStatic 问题的背景颜色

转载 作者:太空狗 更新时间:2023-10-29 20:22:24 25 4
gpt4 key购买 nike

我在使用 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;
}

这是它最终在屏幕上的样子。控件本身比其中的文本大,但我不确定如何让控件的其余部分以黑色背景绘制。似乎将背景颜色设置为黑色只会影响显示文本的区域。关于我可能做错了什么的任何想法?

This is what it looks like

最佳答案

发现我的错误。我在 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;
}

关于c++ - CStatic 问题的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38004717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com