1.1.7-学习Opencv与MFC混合编程之---为画图工具添加工具栏
源代码:http://download.csdn.net/detail/nuptboyzhb/3961701
哎,其实里面有很多图片的,本来看起开很明了的,资源连接里有详细的文档,比下面的看的舒服的多....
Ø 首先认识一下工具栏的操作。
1. 打开资源->Toolbar
2. 如何查看每个图标的属性?
查看每个图标属性,不是按右键,而是左键双击图片,即可看到,如:
我们双击打开图标,得到如下属性框:
从上图我们可以知道‘打开’图标的资源ID是:ID_FILE_NEW;这个ID号恰好和菜单项中的‘文件’->‘打开’菜单项具有相同的资源ID。
因此,当我们按工具栏的‘打开’图标时,能够执行和按菜单项相同的功能。
3. 如何为工具栏上的图标之间添加一个分隔符?
只需要用鼠标拖动即可。将一个图标拖到远一点的地方即可。
4. 如何删去一个图标?
用鼠标拖动,拖到离开工具栏即可
Ø 为项目的画图工具添加工具栏。
1. 编辑工具栏资源,分别为每一个工具画一个图标,双击图标,设置图标的属性,使其资源ID号,与菜单项中各个工具菜单的资源ID相对应。编辑运行即可。
2. 结束啦!
Ø 新建自己的工具栏
1. 插入,资源,选择Toolbar,点击新建按钮。将资源按钮设置为:IDR_MY_TOOLBAR
2. 编辑几个图标资源,如下图:
并设置相应的属性。将其与画图工具的菜单项的资源ID设为对应一致。
3. 在CMainFrame类增加成员变量:CToolBar m_myToolBar;并在CMainFrame类的OnCreate(LPCREATESTRUCT lpCreateStruct)函数里添加如下代码:
if(!m_myToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_LEFT
|CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_myToolBar.LoadToolBar(IDR_MY_TOOLBAR))
{
TRACE0("Failedto create toolbar\n");
return-1; // fail to create
}
m_myToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_myToolBar);
4. 编辑运行即可。
在增加成员变量CToolBar m_myToolBar;后出现运行错误,错误提示是一些内存不可读错误。此时,将Release文件下的所有文件删除即可。
Ø 完善功能:为工具栏的显示与否,添加查看菜单项;
1. 添加‘查看’菜单项,设置为弹出类型。
2. 在‘查看’菜单项下添加‘系统工具栏’和‘画图工具栏’菜单项。分别设置相应的属性,并建立类向导;(注意):建立类向导的时候,选择添加到CMainFrame类。在分别在其消息相应函数中加入如下命令:
void CMainFrame::OnViewSystemBar()
{
//TODO: Add your command handler code here
ShowControlBar(&m_wndToolBar,!m_wndToolBar.IsWindowVisible(),FALSE);
}
void CMainFrame::OnViewDrawBar()
{
//TODO: Add your command handler code here
ShowControlBar(&m_myToolBar,!m_myToolBar.IsWindowVisible(),FALSE);
}
3. 以上基本完成了菜单项的功能,一下我们为菜单项的选择添加‘对号’标记。
为‘系统工具栏’和‘画图工具栏’菜单项添加UPDATA_COMMAND_UI消息处理函数。点击右键,建立类向导,
选择UPDATA_COMMAND_UI.类名选择CMainFrame.增加函数,编辑代码:
voidCMainFrame::OnUpdateViewSystemBar(CCmdUI* pCmdUI)
{
// TODO:Add your command update UI handler code here
pCmdUI->SetCheck(m_wndToolBar.IsWindowVisible());
}
void CMainFrame::OnUpdateViewDrawBar(CCmdUI*pCmdUI)
{
//TODO: Add your command update UI handler code here
pCmdUI->SetCheck(m_myToolBar.IsWindowVisible());
}
Ø 为画图工具的各个菜单项添加复选提示;
分别点击右键,建立类向导,选择UPDATA_COMMAND_UI.类名选择CXXXXView.增加函数,编辑代码:
void CCVMFCView::OnUpdateMyDrawLine(CCmdUI*pCmdUI)
{
//TODO: Add your command update UI handler code here
pCmdUI->SetCheck(my_draw_flag==1);
}
voidCCVMFCView::OnUpdateMyDrawRectangle(CCmdUI* pCmdUI)
{
//TODO: Add your command update UI handler code here
pCmdUI->SetCheck(my_draw_flag==2);
}
void CCVMFCView::OnUpdateMyDrawCircle(CCmdUI*pCmdUI)
{
//TODO: Add your command update UI handler code here
pCmdUI->SetCheck(my_draw_flag==3);
}
voidCCVMFCView::OnUpdateMyDrawConceal(CCmdUI* pCmdUI)
{
//TODO: Add your command update UI handler code here
pCmdUI->SetCheck(my_draw_flag==0);
}
void CCVMFCView::OnUpdateMyDrawCurve(CCmdUI*pCmdUI)
{
//TODO: Add your command update UI handler code here
pCmdUI->SetCheck(my_draw_flag==4);
}
voidCCVMFCView::OnUpdateMyDrawEllipse(CCmdUI* pCmdUI)
{
//TODO: Add your command update UI handler code here
pCmdUI->SetCheck(my_draw_flag==5);
}
void CCVMFCView::OnUpdateMyDrawText(CCmdUI*pCmdUI)
{
//TODO: Add your command update UI handler code here
pCmdUI->SetCheck(my_draw_flag==6);
}
Ø 为各个工具菜单添加{提示}功能。即:当鼠标移动到菜单项上的时候,程序左下角会提示该菜单项的功能。
方法1:设置菜单项的属性,在属性中的最后一栏,提示栏中输入相应的提示语即可。
方法2:直接打开资源文件:XXXX.rc,用记事本打开;
添加如下代码:
在BEGIN 和END之间添加菜单项的ID号和对应的字符串即可:
如:
STRINGTABLE DISCARDABLE
BEGIN
ID_MY_DRAW_LINE "画一条直线(拖动鼠标)"
ID_MY_DRAW_CONCEAL "取消工具"
ID_MY_DRAW_RECTANGLE "画矩形(拖动鼠标)"
ID_MY_DRAW_CIRCLE "画圆(拖动鼠标)"
ID_MY_DRAW_ELLIPSE "画椭圆(拖动鼠标)"
ID_MY_DRAW_TEXT "写文字(拖动鼠标)"
ID_MY_DRAW_CURVE "画任意曲线(拖动鼠标)"
END
1.1.7-学习Opencv与MFC混合编程之---为画图工具添加工具栏的更多相关文章
- 1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961674 写视频文件 Ø 新建菜单项,Learning OpenCV——> OpenCVr ...
- 1.0.x-学习Opencv与MFC混合编程之---视频运动检测
源代码地址: http://download.csdn.net/detail/nuptboyzhb/3961668 版本1.0.x新增内容 视频运动检测 Ø 新建菜单项,Learning OpenCV ...
- 1.0.3-学习Opencv与MFC混合编程之---打开本地摄像头
源代码:http://download.csdn.net/detail/nuptboyzhb/3961643 版本1.0.3新增内容 打开摄像头 Ø 新建菜单项,Learning OpenCV——&g ...
- 1.0.2-学习Opencv与MFC混合编程之---为播放AVI视频添加滑动条
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961642 版本1.0.2新增内容 Ø 全局变量和函数的添加: 在CVMFCview.cpp文件 ...
- 1.0.1-学习Opencv与MFC混合编程之---播放AVI视频
资源源代码:http://download.csdn.net/detail/nuptboyzhb/3961639 版本1.0.1新增内容 Ø 新建菜单项,Learning OpenCV——> ...
- 1.1.5-学习Opencv与MFC混合编程之---画图工具 输入文字和填充图像 修改光标
源代码:http://download.csdn.net/detail/nuptboyzhb/3961696 输入文字 l 对话框 1. 插入,资源,选择对话框资源 2. 编辑对话框如下: ...
- 1.1.6-学习Opencv与MFC混合编程之---播放WAV音乐和 alpha融合功能
源代码:http://download.csdn.net/detail/nuptboyzhb/3961698 Alpha融合菜单项 1. 增加alpha融合菜单项,修改相应的属性,建立类向导 ...
- 1.1.4-学习Opencv与MFC混合编程之---画图工具 画椭圆
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961690 1. 增加‘椭圆’菜单项,设置属性,添加类向导: 2. 编辑消息处理函数, ...
- 1.1.3-学习Opencv与MFC混合编程之---画图工具 通过对话框进行工具的参数设置 画曲线 绘图校正
源代码:http://download.csdn.net/detail/nuptboyzhb/3961688 l 对话框 1.“插入”->“资源”->“对话框” 2.对话框属性如下: 双击 ...
随机推荐
- MiddleGenIDE工具的使用
1. MiddleGenIDE工具 1) 先在网上下载MiddleGenIDE工具.能够參考这里 http://blog.csdn.net/wangcunhuazi/articl ...
- Wiki: HSL和HSV色彩空间
HSL 和 HSV(也叫做 HSB)是对RGB 色彩空间中点的两种有关系的表示,它们尝试描述比 RGB 更准确的感知颜色联系,并仍保持在计算上简单.HSL 表示 hue(色相).saturation( ...
- ceph之crush map
编辑crush map: 1.获取crush map: 2.反编译crush map: 3.至少编辑一个设备,桶, 规则: 4.重新编译crush map: 5.重新注入crush map: 获取cr ...
- 【Eclipse】修改java代码不强制重启
找到tomcat的server.xml文件,修改以下代码,重新发布重启.然后修改java代码就可以不用重启了. 将reloadable=“true”改成reloadable="false&q ...
- HDU 4786 生成树 并查集+极大极小值 黑白边 确定选择白边的数量
题意: 给定一个无向图 n 个点 m条无向边 u v val val == 1 表示边(u, v) 为白边 问能否找到n个点的生成树, 使得白边数为斐波那契数 思路: 并查集求图是否连通( 是否存在生 ...
- 根据Email地址跳转到相应的邮箱登录页面 (转)
//跳转到指定的邮箱登录页面 $(".btn_actemail").click(function () { var uurl = $(".hide_email" ...
- USB键盘数据解析
以前用过的一个嵌入式设备使用USB键盘作为输入.当时还研究了一下USB协议,现在都快忘得差不多了.这里整理一下当时找到的关于USB键盘数据方面的资料. 主机与USB键盘建立连接后,定时从键盘获取8字节 ...
- Ruby学习-第一章
第一章 字符串,数字,类和对象 为了证明Ruby真的好用,hello world也能写的如此简洁: puts 'hello world' 1.输入/输出 print('Enter your name' ...
- JAVAC 命令使用方法
结构 javac [ options ] [ sourcefiles ] [ @files ] 參数可按随意次序排列. options 命令行选项. sourcefiles 一个或多个要编译的源文件( ...
- 用shell脚本爬取网页信息
有个小需求,就是爬取一个小网站一些网页里的某些信息,url是带序号的类似的,不需要写真正的spider,网页内容也是差不多的 需要取出网页中<h1></h1>中间的字符串,而且 ...