MFC工具栏位置问题

要编写一个图片浏览程序,在做界面的时候想把工具栏放在下面居中的位置,像这样:我试过将m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);... 要编写一个图片浏览程序,在做界面的时候想把工具栏放在下面居中的位置,像这样:

我试过将
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
这两项设置为CBRS_ALIGN_BOTTOM,但调试时会出现

这样的问题。
请问还有什么可用的方法么?
我现在的界面:
展开
 我来答
ssilspro
2013-04-26 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1716万
展开全部
  • 把创建工具栏的样式CBRS_TOP改成CBRS_BOTTOM就行

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    return -1;
    if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE
    | CBRS_TOP//把这个CBRS_TOP改成CBRS_BOTTOM就行
    | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
    !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))


  • 或者用CFrameWnd::DockControlBar

    DockControlBar(&m_wndToolBar,AFX_IDW_DOCKBAR_BOTTOM);
    void DockControlBar(
    CControlBar* pBar,
    UINT nDockBarID = 0,
    LPCRECT lpRect = NULL
    );


  • 至于EnableDocking是 "将要" 停靠在哪,或者说允许停靠在哪


  • 如果要使工具条浮动,调用CFrameWnd::FloatControlBar

    void FloatControlBar(
    CControlBar * pBar,
    CPoint point,
    DWORD dwStyle = CBRS_ALIGN_TOP
    );


更多追问追答
追问
第一个方法就成功了啊,太感谢了!还有我想问一下,有没有什么方法可以使那些按钮在工具栏的中间呢?
追答

DockControlBar的第3个参数不是一个CRect指针么,你用它试试

或者用MoveWindow也行

______

DockControlBar不知道坐标它怎么算的

用MoveWindow吧

void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CMDIFrameWnd::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
CRect rt1,rt2;
m_wndToolBar.GetWindowRect(&rt1);
m_wndToolBar.ScreenToClient(&rt1);
GetClientRect(&rt2);
m_wndToolBar.MoveWindow((rt2.Width()-rt1.Width())/2,rt1.top,rt1.Width(),rt1.Height());
}
天正软件
2024-08-02 广告
天正软件可以解决以下问题:1. 提供设计标准化:天正软件专注于勘察设计领域,为用户提供标准化、信息化、智能化的解决方案,以提高设计效率、优化设计流程、降低成本。2. 提高绘图效率:天正软件提供了一系列专业绘图工具,能够帮助设计师快速绘制图纸... 点击进入详情页
本回答由天正软件提供
565210
2013-04-25 · TA获得超过358个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:347万
展开全部
听说这个函数可以 DockControlBar
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jellycgl
2013-04-25 · TA获得超过417个赞
知道小有建树答主
回答量:1149
采纳率:66%
帮助的人:891万
展开全部
调用工具栏的MoveWindow
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式