mfc中的CMFCToolBar类怎么实现工具栏上的按钮多行显示??急!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc中的CMFCToolBar类怎么实现工具栏上的按钮多行显示??急!!!相关的知识,希望对你有一定的参考价值。

两行业可以啊!!!
两行也可以

参考技术A 你可以将CToolBar创建在CReBar上面,你要多行显示,就创建多个CToolBar与CReBar上。
CRebar类似于toolbar,但其比toolbar更好用,可以防止按钮,下拉框和toolbar.追问

我用的VS2010,CTOOBAR是不能用的,只能用CMFCToolBar,能给点具体的代码不?谢谢

追答

我的是VS2008的没有这个东东,你可以先看看怎么用CReBar。这是在ReBar上面添加toolbar和下拉列表的。你的MFCTOOLBAR也能这样添加。
CReBar m_wndLastFileBar;
m_wndLastFileBar.Create(this);
m_wndLastFileBar.AddBar(&m_wndToolBar,NULL, NULL, RBBS_BREAK);
m_wndLastFileBar.AddBar(&m_comboFiles,m_LASTUSED, NULL, RBBS_BREAK);

在 CMFCToolBar 中禁用项目

【中文标题】在 CMFCToolBar 中禁用项目【英文标题】:Disable item in CMFCToolBar 【发布时间】:2012-02-21 10:04:20 【问题描述】:

我正在尝试升级我的 MFC MDI 应用程序以使用新的 MFC 功能包。

我将 CToolbar 转换为 CMFCToolBar。现在我试图在某些条件下禁用工具栏中的一项。我听取了项目 ID 的 ON_UPDATE_COMMAND_UI 消息并通过编写以下内容禁用了该项目:

pCmdUI->启用(FALSE);

仅当 ON_UPDATE_COMMAND_UI 消息在 CView 对象中处理但在 CMFCToolbar 派生类中处理时,此方法才能完美运行。

是否有办法从工具栏类本身禁用项目?

【问题讨论】:

【参考方案1】:

工具栏不是 MFC 中命令路由的一部分。所以它永远不会得到命令和更新命令 UI 消息。详细的命令路由可以看这里:MFC Command Routing

您可以在其中一个获取命令消息的对象中覆盖 OnCmdMsg() 方法(如您在上面的链接中所见)并将消息传递到工具栏。

【讨论】:

以上是关于mfc中的CMFCToolBar类怎么实现工具栏上的按钮多行显示??急!!!的主要内容,如果未能解决你的问题,请参考以下文章

MFC CMFCToolBar 最小化恢复工具栏显示异常

MFC:如何让 CMFCToolBarComboBoxButton 显示在 CMFCToolBar 上?

MFC求一个工具栏插入进度条的方法

如何在mfc中设置大小和透明/清除CMFCToolBar按钮和图标?

在 CMFCToolBar 中禁用项目

以编程方式从 MFC 工具栏中完全删除按钮