各位好!
 我在做一个画板程序。现在遇到难题请你不吝赐教。
我画直线时用CPen类, 故用
                 Pen.DeleteObject();
                 Pen.CreatePen(PenStyle,PenWild,m_colors);
所以我可以通过改变PenWild 和 m_colors来改变画笔的宽度和颜色,当我画多边形时我用:
                 CClientDC dc(this);
                 dc.Rectangle(StartPt,EndPt);
可我如果想改变所画多边形的线宽和色彩时,又该如何做呢??
                请多指教,谢了!

解决方案 »

  1.   

    如同画线一样选择画笔即可。CDC::Rectangle 
    Res
    Draws a rectangle using the current pen. The interior of the rectangle is filled using the current brush.
      

  2.   

    CPen yourpen;
    ...
    dc.SelectObject( &yourpen );
      

  3.   

    一个实用办法,即能保存参数,又能自绘,变动也方便:
    class CMyRect:public CObject
    {
    public:
      CMyRect();
      ~CMyRect();
      CRect m_rectDraw;   // <<----
      REFCOLOR m_colPen;  // 色彩
      UINT m_nPenWidth;   // 线宽
      UINT m_nStyle;      // 线型
      UINT m_nDrawMode;   // 绘图模式--光栅操作码
      void DrawRect(CDC *pDC);
      virtual void Serialize(CArchive &ar);// <<----!!!
      DECLARE_SERIAL(CMyRect)
    }void CMyRect::DrawRect(CDC *pDC)
    {
      CPen pen,*open;
      pen.CreatePen(m_nStyle,m_nPenWidth,m_colPen);
      open=pDC->SelectObject(&pen);
      pDC->SetROP2(m_nDrawMode);
      pDC->Rectangle(m_nrectDraw);
      pDC->SelectObject(open);
      pen.DelecteObject();
    }