我想改变一个按钮的颜色:
HBRUSH test::CtlColor(CDC* pDC, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
CBrush cRedBrush;
cRedBrush.CreateSolidBrush(RGB(255,0,0));
// TODO: Return a non-NULL brush if the parent's handler should not be called
return (HBRUSH)cRedBrush;
}
这样的不行吗??
这个函数需要调用吗?在哪调用?
并且这么消息是在哪产生的呀!
还有CDC …*pDC= Getdc();到底应该怎么用呀,或者说到底应该在哪里用,并且怎么确定它返回的是按钮的DC还是其他的DC呀!!
在这个函数有必要对nCtlColor进行判断吗??
还有invaliable();UpdateData(),有什么区别吗??问题多了点。
HBRUSH test::CtlColor(CDC* pDC, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
CBrush cRedBrush;
cRedBrush.CreateSolidBrush(RGB(255,0,0));
// TODO: Return a non-NULL brush if the parent's handler should not be called
return (HBRUSH)cRedBrush;
}
这样的不行吗??
这个函数需要调用吗?在哪调用?
并且这么消息是在哪产生的呀!
还有CDC …*pDC= Getdc();到底应该怎么用呀,或者说到底应该在哪里用,并且怎么确定它返回的是按钮的DC还是其他的DC呀!!
在这个函数有必要对nCtlColor进行判断吗??
还有invaliable();UpdateData(),有什么区别吗??问题多了点。
解决方案 »
- vc2005编译 Kriging 算法实现 2维和3维地图等高线 问题
- 求 可以复制粘贴表情的CRichEditCtrl控件 或 解决方法!!!!
- 自认为mfc高手的请进来
- MFC问题,请解答
- 怎样对数据库数据进行备份和恢复操作?
- 请问要实现软件在线升级功能,编写程序的基本思想是什么?
- 问一个简单的对话框问题!关于非模态的
- 怎样使编辑对话框的内容变为底色为蓝色的修改方式!
- 哪位老兄有《〈VISUAL C++ 实践与提高 数据库篇〉》的 源代码下载。
- 用什么方法决定当前输出系统时间是月日年还是日月年?
- A标签里的href属性钟含有javascript,如何使用mshtml触发(比较困难的一个问题,希望高人解答)
- 在基于FormView视图上,如何动态改变CTreeCtrl控件的宽度??
改变一个按钮颜色需要判断控件的句柄是不是你要改的按钮。
当你要获取控件DC的时候用GetDC,调哪个类实例的GetDC,返回的就是该类实例对应的控件的DC。
没必要对nCtlColor做判断,除非你要改一类颜色。
不知道你说的invaliable是什么,Invalidate是刷新控件;UpdateData对话框中的控件与关联变量间更新数据。
这个消息是在什么时候产生的呀!
我知道也有一个onctlcolor()函数,里面有相应的cwnd的句柄。但是这个既然没有那个参数应该就不用比较吧,
DWORD nState = lpDrawItemStruct->itemState;
DWORD nAction = lpDrawItemStruct->itemAction;
CRect rc = lpDrawItemStruct->rcItem;
UINT uStyle = DFCS_BUTTONPUSH; pDC->SetBkMode(TRANSPARENT);
CString strText;
GetWindowText(strText);
CBrush red;
red.CreateSolidBrush(RGB(255,0,0));
pDC->SelectObject(red);
//COLORREF
CRect rect((rc.TopLeft()).x,(rc.TopLeft()).y,(rc.BottomRight()).x,(rc.BottomRight()).y);
pDC->FillRect(&rect,&red);
// pDC->FillSolidRect((rc.TopLeft()).x,(rc.TopLeft()).y,(rc.BottomRight()).x,(rc.BottomRight()).y,RGB(255,0,0));然后再DloG里面声明了此类的一个对象(用classwizard);
但是还是不能显示颜色,为什么呀!!!还有什么要注意的吗?