MFC里怎么改变窗口上按钮控件的颜色
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC里怎么改变窗口上按钮控件的颜色相关的知识,希望对你有一定的参考价值。
单文档窗口 基类CFormView 已经在view类里把窗口的背景色改成纯白色 我想把按钮控件也改成这种纯白色 试过在属性设置里改成透明不知为什么没用? 有什么其他方法? 只要单纯的改个颜色就行 编译器是vs2010
更改控钮控件的底色可以派生一个CButton类,然后重载DrawItem函数,在这个函数中将底色设成白色。然后添加WM_ERASEBKGND 消息处理函数,//return CButton::OnEraseBkgnd(pDC);
return TRUE;
注释掉原来的 return 语句,改为直接返回 true;
//想从窗口中去更改按钮的底色,比较麻烦,除非你用勾子函数。追问
在OnCtlColor这方法其他控件背景能改 但按钮背景无法更改:
为什么呢?
因为在窗口的OnCtlColor 之后,按钮控件还要调用自身的绘制函数DrawItem ,所以你的设置被庶盖了,也就无效了。
追问那你说的这个方法具体怎么操作啊 不会额
追答1、添加一个CButton类派类 CExpandBTN
2、重载 CExpandBTN 的DrawItem函数如下
void CExpandBTN::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
CRect rect;
GetClientRect(&rect);
CDC* pDC1=CDC::FromHandle(lpDrawItemStruct->hDC);
CBrush bsh1;
bsh1.CreateSolidBrush(RGB(255,0,0));
//MemDC.SelectObject(m_BKBmp);
pDC1->SetBkMode(TRANSPARENT);
pDC1->FillRect(&rect,&bsh1);
CString str1;
GetWindowText(str1);
pDC1->DrawText(str1,&rect,DT_CENTER);
return ;
}
3、将原来的CButton变量,改成CExpandBTN
4、ok;
CButton变量 ? 我没定义过这种变量啊
追答那你的按钮是怎么生成的?可以为它添加一个控制型变量。
追问直接控件放上去的啊 是的CFormView类
追答切换到资源视图。右键对应的按钮,添加变量。
追问添加了 没有用 搞不懂
追答有没有把它的变量类型改成
3、将原来的CButton变量,改成CExpandBTN?
有没有把它的变量类型改成
3、将原来的CButton变量,改成CExpandBTN?
改了啊
参考技术A http://wenku.baidu.com/view/ab23428f680203d8ce2f24ce.html追问这个不好用
请问Winform里面怎么单击按钮来改变窗体背景图片?(C#)
就是想要人性化的选择。
单击一次按钮可以换一次窗体背景图片
注意哦,是改变背景图片!!!不是背景颜色!!!
因为我在网上看到的都是改变背景颜色而不是改变背景图片~~~
所以请哪位高手可以告诉我!!!
拜托了!
谢谢啊~~~~
时间紧张~~~请大侠速速回答~~~
然后回到你的按钮事件里 例如:
int i=0;
private void button3_Click(object sender, EventArgs e)//鼠标单击按钮事件
if (i > 2)//图片数
i = 0;
this.BackgroundImage = imageList1.Images[i];
i++;
本回答被提问者采纳 参考技术B button 的click事件响应里写
this.picturebox.image = image1;
以上是关于MFC里怎么改变窗口上按钮控件的颜色的主要内容,如果未能解决你的问题,请参考以下文章