创建工具栏 分2种情况 对话框的工具栏 和 SDI 单文档工具栏编程
用到的函数
RecalcLayout 当窗体布局发生改变的时候 调用这个函数会调用 RePositionBar重新摆放工具条
ShowControlBar 显示隐藏 工具栏的函数 CControlBar是CToolBar的基类
IsWindowVisible CWnd的函数返回BOOL 检测从CWnd派生的 窗体是否可见
CCmdUI OnUpdateCmdUI消息 用于菜单的维护的一些函数如SetCheck等等
1. 工具栏 菜单都是镶嵌在框架类上的对与 一个单文档应用程序来说 首先 定义一个 CToolBar 的对象
if (!m_newToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_RIGHT //创建一个工具栏
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || //加载一个工具栏 资源
!m_newToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_newToolBar.EnableDocking(CBRS_ALIGN_ANY); //设置工具栏可以停靠
this->EnableDocking(CBRS_ALIGN_ANY); //设置框架窗体可以被停靠 缺一不可
this->DockControlBar(&m_newToolBar); //停靠工具栏
以上是 SDI中MFC框架 OnCreate函数中 代码
2.对话框的工具栏添加 特色工具栏
1. ///////////////////特色工具栏的添加
CToolBar *m_wndToolBar=new CToolBar; //工具条对象堆中创建
m_wndToolBar->CreateEx( this,TBSTYLE_FLAT , WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS,
CRect(10,10,0,0)); //创建工具栏
m_wndToolBar->LoadToolBar(IDR_TOOLBAR1) ; //加载工具栏资源
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); //停靠工具栏
AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST
指的是空间ID的范围,在MFC中
AFX_IDW_CONTROLBAR_FIRST 的值为 0xE800
AFX_IDW_CONTROLBAR_LAST 的值为 oxE8FF
意思是这个ID范围内的ControlBar都将被Reposition
2.经过上面步骤 已经在对话框上创建了我们家在的菜单资源 然后我们设置每个按钮的位图 通过 CImageList 类 GetToolBarCtrl 函数获得 CToolBarCtrl的一个引用
步骤是 CImageList * p=new CImageList; //定义 CImageList对象
p->Create(30,30,ILC_COLOR32, 0, 13); //创建图像列表
pp->Add(AfxGetApp()->LoadIcon(IDI_ICON13)); //向CImageList对象增加新的图标 pp->Add(AfxGetApp()->LoadIcon(IDI_ICON9));//add 图标
(m_wndToolBar->GetToolBarCtrl()).SetImageList(pp); //设置图像列表 工具栏的 通过工具控件 CToolBarCtrl 控件
3.设置 CToolTipCtrl 就是工具栏上面的浮动提示
CToolTipCtrl *t=new CToolTipCtrl; //在堆中创建一个 CToolTipCtrl控件
t->Create(this); //在本窗体中创建
t->SetMaxTipWidth(100); //设置最大宽度
t->SetTipBkColor(RGB(233,222,232)); //设置背景颜色
t->SetTipTextColor(RGB(22,122,122)); //设置提示的文本颜色
t->AddTool(m_wndToolBar,"导出当前员工在线信息到磁盘",CRect(0,0,20,20),ID_OUTPUT); //每次增加的tip都对一个这一个工具栏按钮的ID
t->AddTool(m_wndToolBar,"清空系统运行时候产生的缓存文件",CRect(0,0,20,20),IDM_CLEAR); //ID就是工具栏按钮ID
t->Activate(true);
(m_wndToolBar->GetToolBarCtrl()).SetToolTips(t); //将TIP增加到 工具栏
分享到:
相关推荐
用MFC编的小界面,里面包含源代码,基于单文档,调用多个对话框
MFC中在一个对话框中弹出另一个对话框.pdfMFC中在一个对话框中弹出另一个对话框.pdfMFC中在一个对话框中弹出另一个对话框.pdfMFC中在一个对话框中弹出另一个对话框.pdfMFC中在一个对话框中弹出另一个对话框.pdfMFC中...
基于单文档的对话框的菜单和对话框的使用!
MFC 如何将一个对话框嵌入到视图中
MFC 打印总结 包括SDI MDI 对话框实例
VC MFC在对话框中添加工具栏.rar
基于单文档的MFC,建立对话框,实现与基于对话框一样的MFC
MFC在对话框中加入工具栏的样例工程
一个关于MFC对话框相关编程的很好的入门教程,很详细,ppt中包括源码及截图,主要章节如下: 1. MFC及对话框概念 2. Dialog项目的创建与修改 3. MFC的消息处理 4. MFC控件数据交换
MFC编程课件,对话框多文档编程,详细介绍了MFC编程的基础知识。
MFC 子对话框向父对话框 Edit内容的同步
MFC 加法计算器 + 模态对话框 完整工程代码下载 MFC 加法计算器 + 模态对话框 完整工程代码下载 MFC 加法计算器 + 模态对话框 完整工程代码下载 MFC 加法计算器 + 模态对话框 完整工程代码下载 MFC 加法计算器 +...
MFC延伸对话框,延伸对话框
MFC Windows 程序设计之对话框工具状态栏,适合初学MFC的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学MFC Windows 程序设计的小伙伴们,你们的成长是我最大的幸福
基于对话框的MFC实现工具栏加载,简单实例。
MFC 加法计算器 + 向导对话框+非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 向导对话框+非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 向导对话框+非模态对话框 完整工程演示代码下载 MFC 加法...
利用MFC实现单文档菜单响应,生成并显示非模态对话框,并对其进行实时地销毁,对话框还实现了绘图的功能(画直线),一例多用,自己花了一上午搞出来的
MFC 基于对话框 添加对话框 MFC 基于对话框 添加对话框 MFC 基于对话框 添加对话框 MFC 基于对话框 添加对话框
该示例演示MFC对话框的标题栏隐藏、显示和高度、边框的调整。
mfc对话框的标准计算器,跟电脑上的一样的!计算器的各个键的函数书写及对话框的简历!