MFC下 SDI 单文档 对话框 工具栏编程总结 新手值得一看,
来源:互联网 发布:农村淘宝运营面试 编辑:程序博客网 时间:2024/04/29 07:13
创建工具栏 分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下 SDI 单文档 对话框 工具栏编程总结 新手值得一看,
- MFC单文档SDI
- MFC单文档框架编程(二): SDI框架下的消息处理
- MFC单文档框架编程(二): SDI框架下的消息处理
- MFC SDI单文档 状态栏 进度条 启动画面编程技巧 ...
- MFC SDI单文档应用程序贴图
- 浅谈MFC单文档(SDI)程序
- MFC单文档(SDI)转换成多文档(MDI)解决方案
- MFC单文档(SDI)转换成多文档(MDI)解决方案
- MFC中 单文档程序 删除工具栏
- MFC单文档嵌入对话框
- MFC单文档(SDI)全屏程序实现方法
- 创建无边框的MFC单文档(SDI)应用程序
- MFC SDI 屏蔽主菜单和工具栏以及添加背景标题等操作
- MFC 对话框编程 -- 总结
- MFC创建自己的工具栏(SDI)
- MFC单文档 对话框 模式对话框和非模式对话框
- 在MFC单文档/多文档/对话框环境下添加控制台
- Objc 弱类型(id)的陷阱
- 无法打开chm文件怎么办?
- 每次启动 redmine 都要去命令行甚是麻烦,做了个简单的命令行来启动
- Emacs配置命令(不断更新)
- J2EE 学习 ^^
- MFC下 SDI 单文档 对话框 工具栏编程总结 新手值得一看,
- 门面模式
- Zend框架:Zend_Nosql_Mongo组件建议
- SVN图标含义及常见问题解决方法
- 内存条类型说明
- 只读表空间的备份与恢复
- 《悟透JavaScript》学习札记十之原型扩展
- NOT EXISTS替代NOT IN EXISTS替换DISTINCT 识别‘低效执行’的SQL语句
- pl/sql控制结构(一)