当前位置:编程学习 > C#/ASP.NET >>

如何解决颜色变化问题?



    如图上所示,在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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,