CToolBar位于对话框的右上角

时间:2012-05-05 09:15:06

标签: windows visual-c++ mfc

我正在编写带有工具栏的MFC Document-View应用程序。我想在大型机windoiw的右上角添加一个工具栏。目前我使用下面的代码来设置工具栏

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_BORDER_RIGHT
    | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
    !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
    TRACE0("Failed to create toolbar\n");
    return -1;      // fail to create
}

上面的代码将在主机的左上角创建收费栏。我想把它从左角移到右角。我希望工具栏位于右上角。

MFC中有选项可在右侧,左侧,顶部和底部设置工具栏。但是没有选择将它设置在右上角

提前致谢!

2 个答案:

答案 0 :(得分:1)

您可以在现有工具栏的左侧创建另一个工具栏,并将其留空。将其大小调整为剩余的空间。

很抱歉,但是因为我使用工具栏提供任何详细信息已经太久了。

答案 1 :(得分:0)

据我所知,唯一的方法是在中间添加虚拟按钮并将按钮移到最后。

    LPTBBUTTON  newbutton=NULL;
    newbutton=(LPTBBUTTON)calloc(20,sizeof(TBBUTTON));
    int i=0;

    for(i=0;i<20;i++)
    {

        newbutton[i].iBitmap=-1;// for dummy button
        newbutton[i].idCommand=1222;
        newbutton[i].fsState=TBSTATE_ENABLED;
        newbutton[i].fsStyle=TBSTYLE_BUTTON; //TBSTYLE_SEP;
        newbutton[i].iString=-1;

     }
     m_wndToolBar.GetToolBarCtrl().AddButtons(20,newbutton) // this will add 20 new buttons 
     m_wndToolBar.GetToolBarCtrl().MoveButton(1,20);// This will move button from left to right

但此模型中唯一的问题是调整按钮以处理最大化选项。需要处理最大化按钮按下并将按钮增益向右移动。

如果有任何选择,请告诉我。感谢