我在Dialog上画两个矩形,然后用线将它们连起来,但是线总是连得不对,请高手指点一下,解决后马上结帖,我的代码是这样的:
CClientDC dc(this);
CPoint cPoint1,cPoint2;
CRect rect;
rect.left=0;
rect.top=0;
rect.bottom=60;
rect.right=80;
dc.Rectangle(&rect);

cPoint1.x=(rect.right+rect.left)/2;
cPoint1.y=rect.bottom;
rect.OffsetRect(0,100);
dc.Rectangle(&rect); cPoint2.x=(rect.right+rect.left)/2;
cPoint2.y=rect.top;
dc.MoveTo(cPoint1);
dc.LineTo(cPoint2);

解决方案 »

  1.   

    我的意思是说:在Dialog上画两个矩形,然后用线将它们连起来,从上一个矩形的下边的中点连到下一个矩形的上边的中点,谢谢指点
      

  2.   

    你上面的代码已经实现了你说的功能啊,没有错。在Dialog上画两个矩形,然后用线将它们连起来,从上一个矩形的下边的中点连到下一个矩形的上边的中点。
      

  3.   

    我是在我写的一个ActiveX控件中写的,那条线总是距上一个矩形的下边的中点还差一点点,这是否是坐标需要转换的问题呢?
      

  4.   

    CClientDC dc(this);
    CPoint cPoint1,cPoint2;
    CRect rect;
    rect.left=0;
    rect.top=0;
    rect.bottom=60;
    rect.right=80;
    dc.Rectangle(&rect);

    cPoint1.x=(rect.right+rect.left)/2;
    cPoint1.y=rect.bottom;
    rect.OffsetRect(0,100);
    dc.Rectangle(&rect); cPoint2.x=(rect.right+rect.left)/2;
    cPoint2.y=rect.top; m_pen.CreatePen(PS_SOLID,1,RGB(255,255,255));
    dc.SelectObject(&m_pen); dc.MoveTo(cPoint1);
    dc.LineTo(cPoint2);
      

  5.   

    kkk16(socket):你好,能说说怎么转换坐标吗,谢谢了,我对这也不了解,但是我急着写一个ActiveX控件, 控件中动态创建多个CListBox控件,我的代码是这样的:
    CRect rect;
    rect.left=0;
    rect.top=0;
    rect.bottom=60;
    rect.right=80;
    CListBox* lpList1=new CListBox;
    CListBox* lpList2=new CListBox;lpList1->Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_HSCROLL,rect, this, uList_id);
    CPoint cPoint1,cPoint2;
    cPoint1.x=(rect.right+rect.left)/2;
    cPoint1.y=rect.bottom;
    rect.OffsetRect(0,100);
    lpList2->Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_HSCROLL,rect, this, uList_id2);
    cPoint2.x=(rect.right+rect.left)/2;
    cPoint2.y=rect.top;
    CClientDC dc(this);
    dc.MoveTo(cPoint1);
    dc.LineTo(cPoint2);
    这样就总是差一点点连到上一个矩形。
      

  6.   

    对不起看错问题了你可以参考一下DPtoLP以及LPtoDP函数
      

  7.   

    具体为dc.LPtoDP(&cPoint1);
    dc.LPtoDP(&cPoint2);
    dc.MoveTo(cPoint1);
    dc.LineTo(cPoint2);
      

  8.   

    请问高手,在控件上绘图的过程是怎么样的??请告知  [email protected]
      

  9.   

    我曾经在CStatic控件上绘图,不知道大家还有什么方式没有?