社区
非技术类
帖子详情
如何设置动态创建的CButton背景颜色和字体颜色?
zzWind
2002-03-24 10:46:37
同上
...全文
1147
6
打赏
收藏
如何设置动态创建的CButton背景颜色和字体颜色?
同上
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
arte
2002-03-26
打赏
举报
回复
请教Tasehouny兄
如何不用onCtrlColor而改变控件的颜色,比如说,一个dialog上面有一个
edit control(idc_name)和一个button(idc_button1) ,我想当button1被
按下时,改变edit control的背景色,下面的代码为什么不对?
void CMyDialog::OnButton1()
{
// TODO: Add your control notification handler code here
CEdit* pEd=(CEdit*)GetDlgItem(IDC_name);
CDC *pDC;
pDC=pEd->GetDC();
pDC->SetBkColor(RGB(255, 0, 0));
GetDlgItem(IDC_name)->UpdateWindow();
}
zzWind
2002-03-24
打赏
举报
回复
to bluesea21(谢辉)
我重载了OnCtrlColor还是没有用。
Tasehouny
2002-03-24
打赏
举报
回复
WM_CTLCOLOR消息对下列五类控件是适用的:
1.Check box, radio button, push button:用选定的brush画出该控件所被放置的矩形区,控件的形状和文本再在其上画出;
2.Edit control:画出编辑区;
3.Group box:画出标题文本之下的矩形区域;
4.Scroll bar:画出滑块的轨迹;
5.List box:画出列表区域。
静态文本、边框和矩形不受该消息的影响。
还须注意的是,虽然WM-CTLCOLOR消息对Push button是适用的,但是从Windows 3.0及其以后的版本的系统中,加入了用户程序不能修改按钮外观颜色的限制,如果要达到您想要的效果的话,您需要使用owner-drawn button。
关于WM_CTLCOLORBTN的进一步的信息,您可以参考http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/buttons_0d4e.asp
关于owner-drawn button的进一步的信息,您可以参考:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/buttons_4jub.asp
- 微软全球技术中心 VC技术支持
本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
我觉得只能自己画!我就是这样做的!
bluesea21
2002-03-24
打赏
举报
回复
CDC *pDC;
pDC=GetDlgItem(IDC_BUTTON1)->GetDC();
pDC->SelectObject(pFont);
GetDlgItem(IDC_BUTTON)->UpDataWindow();
//字体颜色:CFont pFont.
背景须重载OnCtrlColor
zzWind
2002-03-24
打赏
举报
回复
to psusong(我心飞扬)
我是用你的方法就是Button颜色改变不了,Edit和Dlg都可以。
GoogleGeek
2002-03-24
打赏
举报
回复
那时因为你调用该函数的方法不对!具体的做法如下所示:
in .h
class CYourDlg:public CDialog{
private:
HBRUSH bkColor,dlgcolor;
CBrush brush,dglBrush;
};
in .cpp
CYourDlg::CYourDlg(CWnd* pParent /*=NULL*/)
: CDialog(CYourDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CShowMe)
brush.CreateSolidBrush (RGB(255,255,0));
dglBrush.CreateSolidBrush(RGB(83,200,255));
dlgcolor=(HBRUSH)dglBrush;
bkColor=(HBRUSH)brush;
}
映射消息函数:
HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_EDIT)//设置编辑控件的颜色
{
pDC->SetBkColor (RGB(255,255,0));
return bkColor;
}
if(nCtlColor==CTLCOLOR_DLG)//设置对话框的背景色
{
pDC->SetBkColor (RGB(83,200,255));
return dlgcolor;
}
//设置其他的控件的方法相同,建议兄台看一下MSDN
}
南京扬子石化精细化工有限责任公司
QQ:81824475
Email:psu.song@163.com
设置
C
Button
控件的
字体颜色
和
背景颜色
如果要改变C
Button
按钮的文字颜色,靠上面的方式是不行的。我们需要创建一个新的从C
Button
类继承的CTestBtn类,并添加一个类的DrawItem的虚函数。
C
Button
特效,背景色,文本颜色等
开发C
Button
特效,背景色,文本颜色等
VC6.0改变按钮的
背景颜色
创建了一个基于C
Button
的新类,重载了DrawItem函数,实现了对按钮控件
背景颜色
的动态改变。
可
设置
底图、文本
字体颜色
的自绘式按钮
提供一个自绘式按钮,可
设置
底图、可
设置
文本字体/颜色 附件是源码及示例工程
C
Button
ST类
动态创建
按钮 按钮背景
C
Button
ST这个类估计不用我说了吧,关于
动态创建
按钮封装类,可以帮你省去不少的麻烦!
非技术类
1,658
社区成员
58,950
社区内容
发帖
与我相关
我的任务
非技术类
VC/MFC 非技术类
复制链接
扫一扫
分享
社区描述
VC/MFC 非技术类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章