我在vc ++ / MFC对话框应用程序中执行计算器程序。他,我想在对话框中更改按钮的前景色和背景色。我不知道,如何改变。 如果有任何机构有想法,请用相关代码或示例建议我。
basu_sagar
答案 0 :(得分:1)
在传统的VC / MFC应用程序中没有简单的方法,按钮颜色始终是系统定义的。您必须使用自定义控件,或创建所有者绘制按钮。处理WM_CTLCOLOR并返回不同的画笔不适用于按钮。
编辑:
这是an example替换按钮控件,有人通过将所有者绘制代码封装到类中来解决此问题。
答案 1 :(得分:1)
您可以使用CMFCButton。虽然您可以在资源文件中直接说出这种类型的按钮,但我不推荐它,因为它在rc文件中添加了一个不可维护的十六进制文本。如果你使用几个rc文件,每种语言一个,那真是太恶魔了!
那就放手吧。在表单类中,声明成员
CMFCButton m_button1;
DoDataExchange应如下所示:
void MyDialog::DoDataExchange(CDataExchange* pDX)
{
__super::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BUTTON1, m_button1);
// ...
}
然后OnInitDialog应该是这样的:
BOOL CMyDialog::OnInitDialog()
{
if(!__super::OnInitDialog())
return FALSE;
m_button1.SetFaceColor(RGB(0,0,255));
m_button1.SetTextColor(RGB(0,255,0));
m_button1.SetHotTextColor(RGB(255,0,0));
return TRUE;
}
我发布的代码将绘制一个绿色文本的蓝色按钮,当光标悬停按钮时,其文本将变为红色。
答案 2 :(得分:0)
此链接包含您要查找的信息:CWnd::OnCtlColor