在对话框窗口上有个CStatic 控件(id=static1),如何在控件的中间划一
根横线,长度正好等于控件长度???

解决方案 »

  1.   

    moveto(...)
    lineto(...)就行了。你可以在重画对话框的时候调用这两个函数,不过,你要知道static1的具体位置。
      

  2.   

    楼主是要做一个分割线?
    (在程序中画的话,就用贴图了。用StretchBlt)如果再设计阶段就可以固定画好的话。
    就改用Picture控件,设置属性Gernal->Type:rectangle
    然后改变控件大小,使其跟线差不多大小就可以了。很方便。
      

  3.   

    CWnd *pWnd = GetDlgItem(IDD_XXX)//控件ID...
    CDC *pDC = pWnd->GetDC();
    CRect StaticRect;
    pWnd->GetClienRect(&StaticRect)//获取控件矩形.
    然后就随便乱画吧....^_^
    pDC->xxxxx(xxxxxxx)
    pDC->xxxxx(xxx,xxxx)
    画完记得:
    pWnd->ReleaseDC(pDC);..
      

  4.   

    画横线:
    pDC->MoveTo(0,StaticRect.Height()/2);
    pDC->LineTo(StaticRect.Width(),rc.Height()/2);
      

  5.   

    行啊,刚画完条竖线:
    pDC->MoveTo(StaticRect.Width()/2,0);
    pDC->LineTo(StaticRect.Width()/2,Staticrect.Height());
    以上ok~~
    画横线也行:
    pDC->MoveTo(0,StaticRect.Height()/2);
    pDC->LineTo(StaticRect.Width(),StaticRect.Height()/2);
    上面那个rc.Height()写错了~~
      

  6.   

    完整的:
    CWnd *pWnd = GetDlgItem(IDD_XXX)//获取控件ID指针...
    CDC *pDC = pWnd->GetDC();//获取DC
    CRect StaticRect;
    pWnd->GetClientRect(&StaticRect)//获取控件矩形.
    //画竖线
    pDC->MoveTo(StaticRect.Width()/2,0);
    pDC->LineTo(StaticRect.Width()/2,StatiRect.Height());
    //画横线
    pDC->MoveTo(0,StaticRect.Height()/2);
    pDC->LineTo(StaticRect.Width(),StaticRect.Height()/2);
    //变成正中十字了 ..
    pWnd->ReleaseDC(pDC);//释放DC