在我的应用程序中,我必须在运行时更改“编辑框”的“字体”,“字体大小”,“背景颜色”属性。当用户选择特定字体时,其颜色应更新并在“编辑框”中可见。我正在尝试通过使用CColorDialog,CFontDialog来做到这一点。有什么有效的方法吗?我可以像在Visual Studio环境中那样使用属性栏来更改设置,我们可以在开发环境中更改设置。
最佳答案
您可以在以CEdit作为父类的类中捕获WM_CTLCOLOR消息,然后将CDC对象更改为您的内容。
例如 :
HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
HBRUSH hBrush;
hBrush = (HBRUSH)m_myBrush; // An handle on a brush which was created with your background color for the edit
pDC->SetBkColor(RGB(0, 0, 0)); // Color for the text background
pDC->SetTextColor(RGB(255, 255, 255)); // Color for the text
// More changes on the pDC like changing the font, etc...
return hBrush;
}