UINT x;
int position=0;
for(x=0;x<16;x++)
{
CPen pen(PS_SOLID,x*2+1,RGB(0,0,255));
CPen* oldPen=pDC->SelectObject(&pen); position+=x*2+10;
pDC->MoveTo(20,position);
pDC->LineTo(500,position); pDC->SelectObject(oldPen);
}

解决方案 »

  1.   

    Only this way? I can do this also. I wanna a more elegant way.
      

  2.   

    CPen pen;
    pen.CreatePen(PS_SOLID,9,RGB(0,0,0));
    CPen* pOldPen=pDC->SelectObject(&pen);
             pDC->MoveTo(10,-100);
    pDC->LineTo(100,-100);
             pDC->SelectObject(pOldPen);
    pen.DeleteObject();
      

  3.   

    LinePoint(x1, y1, y2)
    {
      for(int y = y1; y<y2; y++)
      {
         moveto(x1, y);
         lineto(x1, y+1);
         y++;
      }
    }
    要自己控制,没有现成的函数。
      

  4.   

    LinePoint(x1, y1, y2)
    {
      for(int y = y1; y<y2; y++)
      {
         moveto(x1, y);
         lineto(x1, y+1);
         y++;
      }
    }
    要自己控制,没有现成的函数。
      

  5.   

    不好意思,我自己解决了,请大家参考:(不过画斜线效果似乎不太好)
    -----------------------
        LOGBRUSH logBrush;
        logBrush.lbStyle = BS_SOLID;
        logBrush.lbColor = RGB(0,0,0);    DWORD dwStyle[2];
        dwStyle[0]=0;
        dwStyle[1]=3;
        DWORD * pStyle = (dwStyle);    CPen pen(PS_GEOMETRIC|PS_USERSTYLE,x*2+1, &logBrush, 2, pStyle );
        CPen* oldPen=pDC->SelectObject(&pen);    pDC->MoveTo(20, 10);
        pDC->LineTo(500, 10);
        pDC->LineTo(500, 300);    pDC->SelectObject(oldPen);
        pen.DeleteObject();
    --------------------------------