void CMyView::OnDraw(CDC* pDC)
{
 CPen newPen(PS_DASHDOTDOT,2,(COLORREF)0);
 CPen* pOldPen =pDC->SelectObject(&newPen);//不懂
 pDC->MoveTo(10,10);
 pDC->LineTo(110,10);
 pDC->SelectObject(pOldPen);
 }
谁能给解释一下这段代码?

解决方案 »

  1.   

    建newpen
    使用newpen,保存oldpen
    从10,10
    画线到110,10
    恢复oldpen
      

  2.   

    void CMyView::OnDraw(CDC* pDC)
    {
     CPen newPen(PS_DASHDOTDOT,2,(COLORREF)0);//新建一个画笔
     CPen* pOldPen =pDC->SelectObject(&newPen);//把这个画笔选入pDC指向的设备环境同时  返回设备环境中原来的那个画笔指针
     pDC->MoveTo(10,10);
     pDC->LineTo(110,10);
     pDC->SelectObject(pOldPen);
     }
      

  3.   

    void CMyView::OnDraw(CDC* pDC)
    {
     CPen newPen(PS_DASHDOTDOT,2,(COLORREF)0);//建立一个CPen对象,设置其相关属性
     CPen* pOldPen=pDC->SelectObject(&newPen);//将GDI对象newPen选进设备环境中,返回值是指向前一次被选对象的指针
     pDC->MoveTo(10,10);//设置当前position为(10,10)
     pDC->LineTo(110,10);//从当前position(10,10)到(110,10)画一条线,并把当前position设置为(110,10)
     pDC->SelectObject(pOldPen);//将GDI对象pOldPen选进设备环境中,此后newPen就能安全析构了
    }