繁体   English   中英

MFC:如何更改整个editBox的背景颜色?

[英]MFC: How do I change the background color of the whole editBox?

我的问题类似于: win32:在Windows Mobile 5的文本区域中以黑色显示编辑框

但是,我使用的MFC的解决方案与上述链接中的解决方案不一样。

如何更改整个背景的背景颜色,而不仅是编辑框文本后面的背景?

下面是我的代码,仅更改文本后面的背景,而不更改编辑框的整个背景。

HBRUSH CGadgetStandardDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = CStandardDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    pDC->SetBkColor(RGB(255,255,255));

    return hbr;
}

除了调用SetBkColor之外,您还需要返回所需背景色的HBRUSH。 因此,请较早创建画笔(例如,在对话框构造函数中):

m_brBack.CreateSolidBrush(RGB(0, 255, 0));

然后在需要控制感兴趣时返回该画笔:

HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_EDIT2)
{
    pDC->SetBkColor(RGB(0,255,0));
    hbr = m_brBack;
}

重命名您的按钮资源,如下所示。

CButton  m_StopButtonto;

CMFCButton  m_StopButton;

更改一些可见的功能

// Set the background color for the button text.
  m_StopButton.SetFaceColor(RGB(255,0,0),true);
  m_StopButton.SetTextColor(RGB(0,0,255));
  // Set the tooltip of the button.
  m_StopButton.SetTooltip(_T("This is my Stop Button!"));

我尝试了按钮的此解决方案,它为我工作。 我想它将对其他组件起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM