0

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

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中有选项可以在右侧、左侧、顶部和底部设置工具栏。但是没有选项可以将其设置在右上角

提前致谢!

4

2 回答 2

1

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

抱歉,自从我使用工具栏提供任何详细信息以来已经太久了。

于 2012-05-11T14:40:47.633 回答
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

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

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

于 2012-05-11T14:23:17.063 回答