在我的应用程序中,我必须在运行时更改“编辑框”的“字体”,“字体大小”,“背景颜色”属性。当用户选择特定字体时,其颜色应更新并在“编辑框”中可见。我正在尝试通过使用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;
}

10-08 11:06