![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
怎么更改mfc静态控件的文字和颜色?
1个回答
展开全部
在对话框的OnCtrlColor消息响应函数里修改对话框中的控件的颜色
1、OnCtlColor是响应WM_CTLCOLOR消息的函数。当子控件将要被绘制的时候,就会发送一个WM_CTLCOLOR消息给它的父窗口(通常是对话框),父窗口准备正确的颜色来绘制子窗口。在一个对话框中,每一个控件的绘制都会发送这个消息,也就是说这个OnCtlColor函数会被调用多次。OnCtlColor是一个虚函数,在没有被覆盖之前,直接调用父类的OnCtlColor函数,返回一个画刷句柄,并用这个返回的画刷句柄去绘制这个控件。因此,我们可以在这个函数中来设置控件的背景和控件上文字的颜色、文字字体及文字的背景色,但是对于Button控件,却不能直接来改变背景颜色。
2、Button是一种自绘制控件,在自绘制之前就会调用一个虚函数CButton;;DrawItem(),因此,要想改变Button的背景及字体,就要定义一个Button类从CButton派生出来,并且覆盖DrawItem(),则当要绘制这个按钮的时候,框架就会调用这个函数。来改变Button的背景颜色和字体,此外,还要设置控件的ownerdraw属性.
1、OnCtlColor是响应WM_CTLCOLOR消息的函数。当子控件将要被绘制的时候,就会发送一个WM_CTLCOLOR消息给它的父窗口(通常是对话框),父窗口准备正确的颜色来绘制子窗口。在一个对话框中,每一个控件的绘制都会发送这个消息,也就是说这个OnCtlColor函数会被调用多次。OnCtlColor是一个虚函数,在没有被覆盖之前,直接调用父类的OnCtlColor函数,返回一个画刷句柄,并用这个返回的画刷句柄去绘制这个控件。因此,我们可以在这个函数中来设置控件的背景和控件上文字的颜色、文字字体及文字的背景色,但是对于Button控件,却不能直接来改变背景颜色。
2、Button是一种自绘制控件,在自绘制之前就会调用一个虚函数CButton;;DrawItem(),因此,要想改变Button的背景及字体,就要定义一个Button类从CButton派生出来,并且覆盖DrawItem(),则当要绘制这个按钮的时候,框架就会调用这个函数。来改变Button的背景颜色和字体,此外,还要设置控件的ownerdraw属性.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2024-08-21 广告
MarsCode 为你提供了编程助手和 IDE 来协助你完成编程任务。 MarsCode 编程助手提供以智能代码补全为代表的 AI 功能。它支持主流的编程语言和 IDE,在开发过程中提供单行代码或整个函数的编写建议。此外,它还支持代码解释、...
点击进入详情页
本回答由MarsCode提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询