【问题标题】:How to change background color in static text visual studio?如何在静态文本视觉工作室中更改背景颜色?
【发布时间】:2017-11-14 12:46:25
【问题描述】:

我正在尝试更改项目中静态文本的背景颜色。我们也使用 BCG 库。

在小时。我有文件

afx_msg HBRUSH CtlColor(CDC * pDC, CWnd * pWnd, UINT nCtlColor);
COLORREF m_bckNewsClr;

在 cpp.我有:

m_bckNewsClr = RGB(255, 255, 255);

HBRUSH CStartPage::CtlColor(CDC * pDC, CWnd * pWnd, UINT nCtlColor)
{
    pWnd->GetDlgItem(IDC_STATIC_NEWS_CAPTION_1);
    pDC->SetBkColor(m_bckNewsClr);
    return (HBRUSH)m_Brush.GetSafeHandle();
}

在按摩地图中:

ON_WM_CTLCOLOR()

无论如何,当我放置断点时,函数 CtlColor 甚至是不可见的。

有人知道在这种情况下如何更改此背景静态文本吗?

【问题讨论】:

  • 您可以使用 Spy++(如果 x64 目标平台:Spy++ 64)来发现消息是否真的是 WM_CTLCOLOR 。我怀疑在特定情况下是 WM_CTLCOLORSTATIC 。关于stackoverflow.com/a/43120662/383779的更多指导
  • ON_WM_CTLCOLOR 将消息重定向到 OnCtlColor

标签: visual-c++ mfc bcg


【解决方案1】:

ON_WM_CTLCOLOR 需要一个名为:

afx_msg HBRUSH OnCtlColor(
   CDC* pDC,
   CWnd* pWnd,
   UINT nCtlColor 
);

另请参阅CWnd::OnCtlColor 了解如何操作的示例。

还有https://stackoverflow.com/a/12007350/8918119

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-06
    • 2022-12-14
    • 2021-02-19
    • 2011-11-04
    • 2018-12-25
    • 2015-10-18
    • 2013-05-20
    • 1970-01-01
    相关资源
    最近更新 更多