MFC如何设置对话框静态文字背景以及文字颜色
我只要改变这个对话框,而不是所有的对话框,所以只能在这个对话框类的函数里下手啊。新手拜托各位大侠了。。...
我只要改变这个对话框,而不是所有的对话框,所以只能在这个对话框类的函数里下手啊。新手拜托各位大侠了。。
展开
展开全部
先给该对话框生成一个ON_WM_CTLCOLOR()的消息映射,并定义一个CBrush m_brush;
在该对话框的OnInitDialog()函数里写上m_brush.CreateSolidBrush(RGB(0, 255, 255));
然后在该对话框的OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)函数里写上
if (nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);// 此句使静态本文透明
pDC->SetTextColor(RGB(255,0,0));//此句设置文字颜色
return (HBRUSH)(m_brush.GetSafeHandle());
}
注:OnCtlColor()函数是在生成了ON_WM_CTLCOLOR()消息映射后自动生成的函数;
颜色RGB值0-255自己可改
背景RGB值(0,255,255),文字RGB值(255,0,0),效果如图:
2013-04-04
展开全部
改变文字的颜色要使用OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)消息 WM_CTLCOLOR,给对话框加消息映射if (pWnd->GetDlgCtrlID()==IDC_STATIC3)pDC->SetTextColor(RGB(255,0,0))背景色用SetBkColor
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用GetDlgItem,得到控件之后,修改属性就OK了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单。。对大家有用的赞个啊。。。。
1,新建基于对话框的mfc程序。
添加一个static标签控件,ID为:IDC_STATIC_DEMO
在CXXXDlg类中添加一个类型为CBrush的成员变量m_brs;
m_brs.CreateSolidBrush(RGB(0,0,55));//需要程序使用的背景画刷
并且在CXXXDlg的构造函数中添加一行代码
在CXXXDlg中添加WM_CTLCOLOR消息处理函数
然后在OnCtlColor中写下面的代码:
if(IDC_STATIC_DEMO==pWnd->GetDlgCtrlID())//判断正在绘制的是不是我们需要改变的控件
{
pDC->SetBkMode(TRANSPARENT);//设置透明输出
pDC->SetTextColor(RGB(255,0,0));//设置文字颜色
return m_brs;//用自定义的画刷去绘制背景
}
这样。。。就OK了。。
亲,给点分吧,这年头,不容易啊。。。别忘了哦。。。
PS:如果要该按钮的,需要添加DrawItem这个虚函数去搞定。。。。
1,新建基于对话框的mfc程序。
添加一个static标签控件,ID为:IDC_STATIC_DEMO
在CXXXDlg类中添加一个类型为CBrush的成员变量m_brs;
m_brs.CreateSolidBrush(RGB(0,0,55));//需要程序使用的背景画刷
并且在CXXXDlg的构造函数中添加一行代码
在CXXXDlg中添加WM_CTLCOLOR消息处理函数
然后在OnCtlColor中写下面的代码:
if(IDC_STATIC_DEMO==pWnd->GetDlgCtrlID())//判断正在绘制的是不是我们需要改变的控件
{
pDC->SetBkMode(TRANSPARENT);//设置透明输出
pDC->SetTextColor(RGB(255,0,0));//设置文字颜色
return m_brs;//用自定义的画刷去绘制背景
}
这样。。。就OK了。。
亲,给点分吧,这年头,不容易啊。。。别忘了哦。。。
PS:如果要该按钮的,需要添加DrawItem这个虚函数去搞定。。。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询