MFC如何设置对话框静态文字背景以及文字颜色

我只要改变这个对话框,而不是所有的对话框,所以只能在这个对话框类的函数里下手啊。新手拜托各位大侠了。。... 我只要改变这个对话框,而不是所有的对话框,所以只能在这个对话框类的函数里下手啊。新手拜托各位大侠了。。 展开
 我来答
Builber
2013-04-03 · 超过22用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:51.9万
展开全部

先给该对话框生成一个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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果然123482
2013-04-07
知道答主
回答量:9
采纳率:0%
帮助的人:5.7万
展开全部
使用GetDlgItem,得到控件之后,修改属性就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2976c9b
推荐于2017-11-28 · TA获得超过1555个赞
知道小有建树答主
回答量:934
采纳率:0%
帮助的人:714万
展开全部
很简单。。对大家有用的赞个啊。。。。
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这个虚函数去搞定。。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式