我用下面的代码画线,宽度为theApp.m_daywidth-1,但在线的结尾处
总有一个圆形帽子.如何去掉它.我试过设置线的类型的方法,但不行设置线的类型
   DWORD dwPenStyle = PS_GEOMETRIC |           // Pen is geometric
                      PS_DASH |                // Pen is dashed
                      PS_ENDCAP_SQUARE |       // End caps are square
                      PS_JOIN_ROUND       ;           // Joins are round##############################################################
画线
CPen pen;
long col;
int left=pState->m_rect.left-m_scrollPos.x ;
long top=theApp.GetStateTop(EquState)-m_scrollPos.y;
long botton=top+EquState->m_rect.bottom-EquState->m_rect.top ; col=COLOR_WHITE;
pen.CreatePen(PS_SOLID, theApp.m_daywidth-1, col);
CPen* tmpPen = pDC->SelectObject(&pen);
pDC->MoveTo(left+theApp.m_daywidth/2,top);
pDC->LineTo(left+theApp.m_daywidth/2,botton);
pDC->SelectObject(tmpPen);

解决方案 »

  1.   

    不画线,改画一个矩形
    pDC->FillRect(CRect(100,100,100+100,100+10),&brush);
      

  2.   

    使用ExtCreatePen LOGBRUSH lb;
    lb.lbStyle = BS_SOLID;
    lb.lbColor = RGB(0,0,255);
    lb.lbHatch = 0;
    HPEN hpen = ExtCreatePen(PS_GEOMETRIC | PS_SOLID | PS_ENDCAP_FLAT,
    20,
    &lb,
    0,
    0);
    CDC *pDC = GetDC();
    pDC->SetMiterLimit(20);
    CPen pen;
    pen.Attach(hpen);
    CPen *pOldPen = pDC->SelectObject(&pen);
    pDC->MoveTo(10,10);
    pDC->LineTo(50,60);
    pDC->SelectObject(pOldPen);
    pen.Detach();
    ReleaseDC(pDC);
      

  3.   

    GDI不支持宽度超过1的非实线,请使用GDI+.