如标题,

解决方案 »

  1.   

    CRect CControlBar::GetBorders();
    CRect的上下左右分别是上下左右边框的宽度
    SetBorders(CRect * rc)设置宽度
      

  2.   

    问题是如果主窗体呢?我要取得并且想设置他们的宽度,还包括TitleBar 的宽度。
      

  3.   

    主窗口是在Instance()中的createwindow设置??
      

  4.   

    MainFrame的边框宽度可以间接得到,
    先GetWindowRect(&rc1);
    再GetClientRect(&rc2);
    再ClientToScreen(&rc2);
    然后width = rc2.left - rc1.left;
      

  5.   

    给你一段代码,你看用不用得着。//计算工具条位置
    CRect rcClient;
    CRect rcWindow;
    GetClientRect(&rcClient);
    GetWindowRect(&rcWindow); GlobalLayout *playout;
    playout=((CPatternDesignCADApp *)AfxGetApp())->GetGloballayoutPtr();
    playout->SetWindowRect(&rcWindow);
    playout->SetClientRect(&rcClient);

    CSize srToolBar=
    m_wndToolBar.CalcFixedLayout(FALSE,TRUE);
    CSize szToolSelect=
    m_wndToolSelectBox.CalcFixedLayout(FALSE,FALSE);
    CSize szObjView=
    m_wndObjViewBox.CalcFixedLayout(FALSE,TRUE);
    CSize szColorBar=
    m_wndColorBox.CalcFixedLayout(FALSE,TRUE);
    CSize szNavigator=
    m_wndNavigatorBox.CalcFixedLayout(FALSE,TRUE);
    CSize szLayerBar=
    m_wndLayerBox.CalcFixedLayout(FALSE,TRUE); playout->SetSize(&szToolSelect,
    GLOBALLAYOUT_TOOLSELECTSIZE);
    playout->SetSize(&szColorBar,
    GLOBALLAYOUT_TOOLCOLORSIZE);
    playout->SetSize(&szNavigator,
    GLOBALLAYOUT_TOOLNAVIGATORSIZE);
    playout->SetSize(&szObjView,
    GLOBALLAYOUT_TOOLOBJVIEWSIZE);
    playout->SetSize(&szLayerBar,
    GLOBALLAYOUT_TOOLLAYERSIZE); // 浮动工具条。
    int nPosY=(rcWindow.Height()-rcClient.Height())+srToolBar.cy; FloatControlBar(&m_wndToolSelectBox,
    CPoint(rcClient.left,nPosY), CBRS_ALIGN_LEFT);
    nPosY-=(rcWindow.Height()-rcClient.Height());
    FloatControlBar(&m_wndNavigatorBox,
        CPoint(rcClient.Width()-szNavigator.cx,nPosY),
    CBRS_ALIGN_LEFT);
    nPosY+=(szNavigator.cy+20);
    FloatControlBar(&m_wndObjViewBox,
        CPoint(rcClient.Width()-szObjView.cx,nPosY),
    CBRS_ALIGN_LEFT);
    nPosY+=(szObjView.cy+20);
    FloatControlBar(&m_wndColorBox,
    CPoint(rcClient.Width()-szColorBar.cx,nPosY),
    CBRS_ALIGN_LEFT);
    nPosY+=(szColorBar.cy+20);
    FloatControlBar(&m_wndLayerBox,
    CPoint(rcClient.Width()-szLayerBar.cx,nPosY),
    CBRS_ALIGN_LEFT); return 0;
    }
      

  6.   

    laiyiling(陌生人V2.0—剑圣风暴)  你给的这段代码是不是用到了你们自己创建的一个类??
    好像用的是什么层的概念,然后重新构建窗体以及上面的控件?
      

  7.   


    继续期待:如何设置边框的宽度?如何取得和设置titleBar的高度、菜单栏的高度??
      

  8.   

    GetSystemMetrics(xxxx)
    当xxxx=SM_CYFRAME,获得边框宽度
      

  9.   

    不好意思,没看清好几个问题呢!菜单位置,吾猜测应该是SetWindowPos,如果不行,不妨把菜单放在一个controlbar之类的东东上,再SetWindowPos。(纯属猜测,没试过)
      

  10.   

    普通的单文档的菜单一般是不能改变的,如果一定改变的话,那也只能让标题栏变得大一些,菜单往下一点。
    或者,你用第三方的CMenuBar就可以实现了