在MFC中的运行时更改编辑框属性

时间:2013-02-18 11:01:43

标签: c++ visual-studio-2008 visual-c++ mfc

在我的应用程序中,我必须在运行时更改编辑框的字体,字体大小,背景颜色属性。当用户选择特定字体时,应在编辑框中更新并显示颜色。我试图通过使用CColorDialog,CFontDialog来做到这一点。有没有有效的方法呢?我是否可以使用Visual Studio环境中的属性栏来更改我们用于更改开发环境中的属性的设置。

1 个答案:

答案 0 :(得分:1)

您可以在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;
}