可以用CBitmapButton
它有个LoadBitmaps 方法,可以针对不同的状态设置不同的。比如你那个红按钮就在资源里准备个红色的位图,然后调LoadBitmaps 把位图资源id设进去。
点按钮的时候SetCheck 设置按下抬起状态。GetCheck 可以得到这个状态。
Onerasebkgnd是要消息响应函数,可以通过添加消息响应来添加。如果想调用该函数,不推荐,发送WM_ERASEBKGND 消息比较好。如果一定要调用,参数可以如下方式获得:
CDC pDC = GetWindowDC();
OnEraseBkgnd( pDC );
ReleaseDC(pDC);
直线的颜色 由画线时的颜色 决定。mfc 用 CPen (笔)的参数决定。
用按钮控件改变颜色,也就是控制用哪支笔来画线。
你要建一个 对话框,里面有按钮,当按钮按下并d起,送返一个数m_bi,例如笔号0,1,2,3,4,5。。。并发送一个要求更新画线的消息。
例如,绘图函数OnDraw()里有一组笔的定义
OnDraw(CDC pDC)
{
CPen aPen[8];
CPen poldPen;
aPen[0]CreatePen(PS_SOLID ,1,COLORREF(0x0000ff));
aPen[1]CreatePen(PS_SOLID ,1,COLORREF(0x0090ff));
aPen[2]CreatePen(PS_SOLID ,1,COLORREF(0x40a0a0));
aPen[3]CreatePen(PS_SOLID ,1,COLORREF(0x00a000));
aPen[4]CreatePen(PS_SOLID ,1,COLORREF(0xffa000));
aPen[5]CreatePen(PS_SOLID ,1,COLORREF(0xff0000));
aPen[6]CreatePen(PS_SOLID ,1,COLORREF(0xff00ff));
aPen[7]CreatePen(PS_SOLID ,1,COLORREF(0x000000));
poldPen = pDC->SelectObject(&aPen[m_bi]); // 选中的笔号 m_bi
。。。这里用选中的笔号画线
}
以上就是关于MFC 改变按钮颜色的问题全部的内容,包括:MFC 改变按钮颜色的问题、我想把用MFC生成的控件窗口颜色置白,知道用Onerasebkgnd,但不知道具体怎么传参,请问怎么用、怎么在mfc中用按钮控件改变一条直线的颜色我才学,请详细指点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)