如何解决颜色变化问题?
如图上所示,在VC++6.0里,我想通过【控制】按钮改变文字和线段的颜色,要怎么实现啊?
实际就是模拟各台机器网络的通断。
最好是各个方块也能一起变化。
以下是现有源码:
void CXxxDlg::OnPaint()
{
if (IsIconic())
{
...
}
else
{
CDC*pDC=GetDC();//获取窗口设备上下文
CPen P1; //定义颜色画笔P1
P1.CreatePen(PS_SOLID,1,RGB(0,0,255));//创建颜色画笔P1
CPen*pA=pDC->SelectObject(&P1); //选中画笔pA
//********输出矩形
CRect R0(10,10,290,100); //定义一个矩形区域R0
pDC->Rectangle(R0);//绘制矩形R0
pDC->SelectObject(pA);//选中原来的画笔pA
P1.DeleteObject();//释放画笔对象p
CPen P2;//定义颜色画笔P2
P2.CreatePen(PS_SOLID,1,RGB(0,255,0));//创建颜色画笔P2
CPen*pB=pDC->SelectObject(&P2);//选中画笔pA
//*********输出线段第一组
pDC->MoveTo(185,55);//定位直线的起点
pDC->LineTo(185,75);//从起点绘制到终点
pDC->MoveTo(125,55);//定位直线的起点
pDC->LineTo(125,75);//从起点绘制到终点
pDC->MoveTo(125,75);//定位直线的起点
pDC->LineTo(185,75);//从起点绘制到终点
//*********输出线段第二组
pDC->MoveTo(255,55);//定位直线的起点
pDC->LineTo(255,85);//从起点绘制到终点
pDC->MoveTo(115,55);//定位直线的起点
pDC->LineTo(115,85);//从起点绘制到终点
pDC->MoveTo(115,85);//定位直线的起点
pDC->LineTo(255,85);//从起点绘制到终点
//*********输出线段第三组
pDC->MoveTo(45,55);//定位直线的起点
pDC->LineTo(45,85);//从起点绘制到终点
pDC->MoveTo(105,55);//定位直线的起点
pDC->LineTo(105,85);//从起点绘制到终点
pDC->MoveTo(45,85);//定位直线的起点
pDC->LineTo(105,85);//从起点绘制到终点
pDC->SelectObject(pB);//选中原来的画笔pA
P2.DeleteObject();//释放画笔对象p
//***************输出指定字体和颜色文本,
pDC->SetTextColor(RGB(0,255,0));//设置红色的文本颜色
CFont *pOleFont=pDC->SelectObject(&m_Font);//选中字体对象
pDC->SetBkMode(TRANSPARENT);//设置背景透明
pDC->TextOut(20,20,"管理");//输出文本
pDC->TextOut(90,20,"上位");//输出文本
pDC->TextOut(160,20,"一号");//输出文本
pDC->TextOut(230,20,"二号");//输出文本
pDC->SelectObject(pOleFont);//选中原来的字体
//*********绘制控件
CRect A(20,35,70,55);//定义一个区域对象A
pDC->DrawFrameControl(A,DFC_BUTTON,DFCS_BUTTONPUSH);//绘制普通按钮
CRect B(90,35,140,55);//定义一个区域对象B
pDC->DrawFrameControl(B,DFC_BUTTON,DFCS_BUTTONPUSH);//绘制普通按钮
CRect C1(160,35,210,55); //定义一个区域对象C1
pDC->DrawFrameControl(C1,DFC_BUTTON,DFCS_BUTTONPUSH);//绘制普通按钮
CRect C2(230,35,280,55); //定义一个区域对象C2
pDC->DrawFrameControl(C2,DFC_BUTTON,DFCS_BUTTONPUSH);//绘制普通按钮
CDialog::OnPaint();
}
} --------------------编程问答-------------------- P1.CreatePen(PS_SOLID,1,RGB(0,0,255));//
把这个RGB(...)弄成一个成员变量 --------------------编程问答-------------------- 在创建笔时将颜色值用变量的形式,在构造函数中初始化颜色值,当按钮按下时给变量赋值,刷新视图就可以了
补充:.NET技术 , VC.NET