我在用VC画矩形,圆形,线时,想改变画笔的颜色,用了以下函数
         CPen p;
p.CreatePen(PS_SOLID,PS_GEOMETRIC,RGB(255,0,0));
         pDC->SelectStockObject(NULL_BRUSH);
         pDC->Rectangle(Start.x,Start.y,End.x,End.y);
    可是为什么画出来的还是黑色的线?
 我是菜鸟,请各位高手指教,最好写清楚些,多谢了!

解决方案 »

  1.   

    选入画笔
    pDC->SelectStockObject(p);
      

  2.   

    COLORREF CopyColor = RGB(???,???,???)//自己定义
    CPen pen(PS_SOLID, 1, CopyColor), *oldpen;
    int oldmode = pDC->GetROP2();
    oldpen = pDC->SelectObject(&pen);
    pDC->SetROP2(R2_COPYPEN); pDC->MoveTo(m_x1, m_y1);//移动当前绘图点为线段第一点
    pDC->LineTo(m_x2, m_y2);//绘制直线 pDC->SelectObject(oldpen);
    pDC->SetROP2(oldmode);
    pen.DeleteObject();//释放笔资源
      

  3.   

    CPen p,*pOldPen;         //定义画笔
        p.CreatePen(PS_SOLID,PS_GEOMETRIC,RGB(255,0,0));  //初始化画笔(红色)
        pOldPen=pDC->SelectObject(&p);  //把画笔选入DC,并保存原来画笔
        pDC->Rectangle(Start.x,Start.y,End.x,End.y);     //开始绘图
      

  4.   

    在OnDraw里
    COLORREF CopyColor = RGB(???,???,???)//自己定义
    CPen pen(PS_SOLID, 1, CopyColor), *oldpen;
    oldpen = pDC->SelectObject(&pen); pDC->MoveTo(m_x1, m_y1);//移动当前绘图点为线段第一点
    pDC->LineTo(m_x2, m_y2);//绘制直线 pDC->SelectObject(oldpen);
    pen.DeleteObject();//释放笔资源
      

  5.   

    CPen p;pDC->SelectObject(&p);
      

  6.   

    CPen ipen(PS_SOLID,1 ,RGB(255,0,0));
    pDC->SelectObject(&ipen);
    pDC->SetPixel(pa.x,pa.y,RGB(255,255,0));
      

  7.   

    CPen ps(PS_SOLID, 1, RGB(255, 0, 0));
      

  8.   

    CPen p;
    p.CreatePen(PS_SOLID,PS_GEOMETRIC,RGB(255,0,0));
             pDC->SelectObject(&p);
             pDC->SelectStockObject(NULL_BRUSH);
             pDC->Rectangle(Start.x,Start.y,End.x,End.y);