社区
界面
帖子详情
在线等待!!!在OnCtlColor中改变控件背景色
jxw3000
2003-10-23 09:33:35
在OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)中改变控件背景色.字体色时,其他都可以但按钮的改变不了请高手指点
...全文
207
20
打赏
收藏
在线等待!!!在OnCtlColor中改变控件背景色
在OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)中改变控件背景色.字体色时,其他都可以但按钮的改变不了请高手指点
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dan1416
2003-10-31
打赏
举报
回复
改不了按钮
是因为没有把按钮的owner drawer勾中
你再试一下
cnwww
2003-10-31
打赏
举报
回复
我试试再说!
yintongshun
2003-10-31
打赏
举报
回复
楼上的各位说的真够详细的,VCKBASE
wwwhb2000
2003-10-31
打赏
举报
回复
对于具体的控件可以从CEDIT继承类,在其中重载=WM_CTLCOLOR(即REFLECT消息),再pDC->setTextColor(..),return (HBRUSH*)(m_brushBak.getsafeHwnd()),看看MSDN的反射消息,应该可以的!
taianmonkey
2003-10-31
打赏
举报
回复
if(nCtlColor==CTLCOLOR_LISTBOX)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_SCROLLBAR)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_EDIT)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,180,220));
HBRUSH b=CreateSolidBrush(RGB(160,180,220));
return b;
}
else if(nCtlColor==CTLCOLOR_DLG)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,180,220));
HBRUSH b=CreateSolidBrush(RGB(160,180,220));
return b;
}
else if(nCtlColor == CTLCOLOR_BTN)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
carbon107
2003-10-31
打赏
举报
回复
http://www.powerba.com/develop/vc/article/20000725003.htm
这里讲的也非常好
ink8852
2003-10-31
打赏
举报
回复
不错!
会思考的草
2003-10-27
打赏
举报
回复
上面这个代码是我用另外一个消息WM_CTLCOLOREDIT修改编辑框里面字体的颜色的,颜色的RGB值是随机产生的,只是演示用。
会思考的草
2003-10-27
打赏
举报
回复
映射WM_CTLCOLOR消息。当然你在ClassWizard里面找不到这个消息的,你可以这样做:
打开ClassWizard,选择最后一个属性页ClassInfo,在本页面下半部,有一个Message Filter下拉列表框,一般默认是Dialog,你把它改成Window,然后回到第一个页面Message Maps,就能看到WM_CTLCOLOR消息了。
再给你一个示范代码:
void CChangeColorDlg::OnButtonChangecolor()
{
CDC dc;
SendMessage(WM_CTLCOLOREDIT, (WPARAM) dc.GetSafeHdc(), 0);
GetDlgItem(IDC_EDIT_TEST)->SetFocus();
}
HBRUSH CChangeColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//Generate pseudorandom number
int R = rand()%255;
int G = rand()%255;
int B = rand()%255;
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
SetTextColor(pDC->m_hDC, RGB(R,G,B));
return hbr;
}
qrlvls
2003-10-27
打赏
举报
回复
重载 DrawItem 函数自绘,这样的话就需要自己绘制文本和图标
推荐使用 CButtonST 类,不用自己再写代码了
http://www.vckbase.com/code/listcode.asp?mclsid=3&sclsid=301&page=2
bigflyingpig
2003-10-24
打赏
举报
回复
gz
yushulei
2003-10-23
打赏
举报
回复
up
jxw3000
2003-10-23
打赏
举报
回复
我需要的是将大量的控件背景色同步,有更好的办法吗?
ink8852
2003-10-23
打赏
举报
回复
自己重画控件吧...drawitem
不过我使用的是CButtonST类,蛮好用的
如果觉得不满意,自己还可以添加一些需要的函数
arvid_gs
2003-10-23
打赏
举报
回复
if((nCtlColor == CTLCOLOR_BTN) && (pWnd->GetDlgCtrlID()==IDC_BUTTON1))
{
HBITMAP hBitmap;
hBitmap = (HBITMAP)::LoadImage(AfxGetApp()->m_hInstance ,"c://bag.gif",0,0,0,0); // = CreateBitmap(8, 8, 1, 1, (LPSTR)wWeave);
hbr = CreatePatternBrush(hBitmap);
pDC->SetTextColor(RGB(0,0,255)); //改变字体的颜色
hbr=(HBRUSH) m_bluebrush;
}
arvid_gs
2003-10-23
打赏
举报
回复
按钮不能通过OnCtlColor来改变背景,继承在DrawItem()里改写把!
wuxfBrave
2003-10-23
打赏
举报
回复
自己下载一个CButtonST类
flinming
2003-10-23
打赏
举报
回复
我试过很多好像都不行
还是自己重画控件吧。。。。drawitem
或者到网络上找一个别人写好的控件。。。自己在去修改吧。。。。。。。
ninsenki
2003-10-23
打赏
举报
回复
UP
vcforever
2003-10-23
打赏
举报
回复
用OnCtlColor()是无法改变按钮的背景色的!
要想改变按钮的背景色只有自己画按钮了!
网上有很多例子,搜索一下,一大堆的!呵呵……
如何在VC
中
改变
控件
的
背景色
如何在VC
中
改变
控件
的
背景色
? 1. 在MFC
中
可以通过重载OnCtrl
Color
()来实现。。。 2. 也可以通过定制来实现。。。
MFC 按钮
控件
背景色
改变
自定义了一个
改变
按钮颜色的事件,当然也有自己的单击事件,基于项目的要求做的,想到可能有需要的朋友就上传了
改变
MFC对话框
背景色
、
控件
内的字体
改变
MFC对话框
背景色
、
控件
内的字体颜色和
背景色
设置 Dialog, Group Box, Static Text, Check Box, Edit Ctrl(disabled), Combo Box(disabled), Radio Button等
背景色
编写WM_CTL
COLOR
消息的映射函数
OnCtl
Color
(CDC *pDC, CWnd pWnd, UINT nCtl
Color
)
如何更改MFC按钮的
背景色
如何更改MFC按钮的
背景色
,怎么去
改变
背景颜色。
VC
改变
控件
的背景颜色
在VC编程
中
要
改变
控件
(诸如CView, CFrameWnd, or CWnd等)的
背景色
可通过处理特定的消息来实现。但如果想
改变
按钮的颜色,就只能使用自绘制的按钮(也可以用位图按钮,此处未做说明)而不能通过
OnCtl
Color
()
改变
。
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章