想在对话框中加入多个工具栏,但是不找不到可以在一排显示的方式.求大神们指点。
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
大神你在吗?MFC对话框中多个工具栏如何单行显示
收起
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
threenewbee 2015-05-28 14:44关注最简单的办法是把工具条放在CRebarCtrl里面
https://msdn.microsoft.com/zh-tw/library/cc468280(v=vs.71).aspx本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
oyljerry 2015-05-28 14:59关注你可以自己创建工具栏,然后MoveWindow来控制位置大小。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
zzkjliu 2015-05-28 15:24关注如何在对话框上停靠自己新建的工具栏
//先创建一个工具栏资源IDR_TOOLBAR1
m_cToolBar.CreateEx(this, TBSTYLE_FLAT , WS_CHILD | WS_VISIBLE
| CBRS_TOP //初始停靠在客户区顶部
| CBRS_GRIPPER //左边有一条竖线
| CBRS_TOOLTIPS //产生工具提示
|CBRS_FLYBY //产生消息文本
| CBRS_SIZE_DYNAMIC //动态改变大小
| CBRS_BORDER_TOP //在工具栏上面显示边框
);//创建m_cToolBar.LoadToolBar(IDR_TOOLBAR1);//加载资源
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); //不要忘了调用此函数,否则工具栏不显示。2.创建一个带图标的工具栏
这个方法不需要创建工具栏资源,但是要准备几个图标资源
以下代码没有整理,你自行整理一下
m_ToolBar.CreateEx(this, TBSTYLE_FLAT , WS_CHILD | WS_VISIBLE
| CBRS_TOP //初始停靠在客户区顶部
| CBRS_GRIPPER //左边有一条竖线
| CBRS_TOOLTIPS //产生工具提示
|CBRS_FLYBY //产生消息文本
| CBRS_SIZE_DYNAMIC //动态改变大小
| CBRS_BORDER_TOP //在工具栏上面显示边框
);
CImageList m_ImageList;
//设置图标
m_ImageList.Create(32, 32, ILC_COLOR24|ILC_MASK,2,2); //后面两个参数2,2,不重要。随便指定m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONLOOK));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_REFURBISH));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONDEL));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONCLEAR));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONORDER));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICONSORT));
m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
m_ImageList.Detach();
m_ToolBar.SetButtons(NULL, 8); //共8个按钮
// 下面设置每个工具按钮文字,设置后,每个图标下面就显示相应的文字。也可以不设置
m_ToolBar.SetButtonInfo(0, ID_LOOK, TBSTYLE_BUTTON, 0);
m_ToolBar.SetButtonText(0, " 查 看 ");m_ToolBar.SetButtonInfo(1, ID_REFURBISH, TBSTYLE_BUTTON, 1);
m_ToolBar.SetButtonText(1, " 刷 新 ");m_ToolBar.SetButtonInfo(2, ID_SEPARATOR, TBBS_SEPARATOR , 1);
m_ToolBar.SetButtonInfo(3, ID_DELETE, TBSTYLE_BUTTON , 2);
m_ToolBar.SetButtonText(3, " 删 除 ");m_ToolBar.SetButtonInfo(4, ID_CLEAR, TBSTYLE_BUTTON, 3);
m_ToolBar.SetButtonText(4, " 清 空 ");m_ToolBar.SetButtonInfo(5, ID_SEPARATOR, TBBS_SEPARATOR , 3);
m_ToolBar.SetButtonInfo(6, ID_ORDER, TBSTYLE_BUTTON , 4);
m_ToolBar.SetButtonText(6, " 排 序 ");m_ToolBar.SetButtonInfo(7, ID_SORT, TBSTYLE_BUTTON , 5);
m_ToolBar.SetButtonText(7, " 分 类 ");m_ToolBar.SetSizes(CSize(51,51), CSize(32,32)); //设置按钮的大小,注意这个按钮大小要和图像列表中图像的大小一致(32,32)
//CSize(51,51)设置按钮大小, CSize(32,32)设置按钮上图标大小,
注意,第一个CSize中的参数必须比第二个CSize中的参数大,分别大至少7和6,如下所述
//(CSize(cx1,cy1), CSize(cx2,cy2));cx1-cx2>=7,cy1-cy2>=6//设置按钮ID_ORDER和ID_SORT具有下拉箭头
m_ToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
DWORD dwStyle = m_ToolBar.GetButtonStyle(m_ToolBar.CommandToIndex(ID_ORDER));
dwStyle |= TBSTYLE_DROPDOWN;
m_ToolBar.SetButtonStyle(m_ToolBar.CommandToIndex(ID_ORDER),dwStyle);dwStyle = m_ToolBar.GetButtonStyle(m_ToolBar.CommandToIndex(ID_SORT));
dwStyle |= TBSTYLE_DROPDOWN;
m_ToolBar.SetButtonStyle(m_ToolBar.CommandToIndex(ID_SORT),dwStyle);RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); //不要忘了调用此函数,否则工具栏不显示。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
- 2015-05-28 14:33回答 3 已采纳 最简单的办法是把工具条放在CRebarCtrl里面 https://msdn.microsoft.com/zh-tw/library/cc468280(v=vs.71).aspx
- 2015-06-02 16:15回答 6 已采纳 一般API是用的SetParent函数,但是MFC和.net不是一个体系,只怕内部交融肯定不行,至少焦点是个问题
- 2015-07-27 13:10回答 3 已采纳 我的建议是,参数对话框获取数值后,由主对话框去读取,这样参数对话框更内聚
- 2019-03-27 09:01演示了两种打开文件对话框,一种是使用纯SDK下的API函数,一种是使用MFC的CFileDialog类。 可以选择多个文件并获取地址路径
- 2018-11-26 06:45回答 1 已采纳 参考:https://www.codeguru.com/cpp/w-d/splitter/article.php/c1559/Implementing-Rulers-inside-of-Splitte
- 2018-01-29 05:44回答 2 已采纳 https://www.cnblogs.com/fickleness/p/3149016.html m_pRecordset = m_pConnection->Execute("SELEC
- 2015-09-05 07:32回答 1 已采纳 你干嘛用基于对话框的程序,你完全可以创建一个基于单文档的程序,再添加对话框,这比你先创建一个对话框的程序,再添加文档视图支持简单的多。
- 2015-04-30 22:43GuyaWeiren的博客 MFC中在基于对话框的窗体中使用CFileDialog导致菜单栏变灰的解决方案
- 2015-10-01 17:34回答 1 已采纳 http://jingyan.baidu.com/article/fa4125ac8d25ac28ac70921d.html
- 2018-01-28 14:08回答 7 已采纳 运行成功,但是运行后的界面上之前删除的控件却还在 这种情况很明显,是代码绑定的资源 ID 没有改变。 对应头文件中,修改枚举值。 ![图片说明](https://img-ask.csdn
- 2017-05-21 01:16回答 1 已采纳 创建一个单文档项目,然后创建对话框,在CMainFrame的OnCreate里显示你的对话框。估计你是想来个登陆界面吧。
- 2019-02-15 14:17洞里有光的博客 mfc动态改变对话框窗口大小和显示位置
- 2015-10-25 07:34回答 3 已采纳 你要绑定对应的消息到这两个处理函数。不然消息不会触发你的函数
- 2018-11-09 04:31很萌很蠢的博客 MFC 修改对话框标题
- 2019-02-02 18:29toshiba689的博客 如果你是一个Windows程序开发员,要实现在一个对话框中显示网页,那很自然会想到用IE控件。在MFC类库里,有CHTMLView类和CHTMLDialog类专门用来加载网页的。但是很多时候,我们觉得用IE控件很不爽,主要是渲染网页...
- 没有解决我的问题, 去提问
悬赏问题
- ¥15 高价微信红包金额尾数算法
- ¥30 矩阵分析与古诗词意境
- ¥15 使用uniapp把小程序转为app
- ¥15 在win10 64位的vs打包MSI文件,放到win7 64位上安装成可执行exe文件后,点击程序不运行。
- ¥50 大众点评用户浏览/消费记录爬虫
- ¥15 求制作一个个人网页,
- ¥15 寻涂色内存脚本作者有项目有市场有资源.却技术
- ¥15 蓝桥杯c51单片机问题
- ¥15 ajax跨域问题请求修改代码
- ¥15 python matplotlib