1.1.5-学习Opencv与MFC混合编程之---画图工具 输入文字和填充图像 修改光标
源代码:http://download.csdn.net/detail/nuptboyzhb/3961696
输入文字
l 对话框
1. 插入,资源,选择对话框资源
2. 编辑对话框如下:
设置每一个控件的属性。
3. 双击对话框,建立对话框的类,命名为:TexTSetDlg
4. 给对话框类增加公有成员变量如下:
int m_colorR;
int m_colorG;
int m_colorB;
double dlg_hscale;
double dlg_vscale;
double dlg_shear;
int dlg_thick;
CString str_text;
5. 在对话框的构造函数中,初始化成员变量。
6. 在数据交换函数中,将控件上输入的值写入到成员变量中。同时检查输入的数字是否合法。
voidTexTSetDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(TexTSetDlg)
DDX_Text(pDX,IDC_COLOR_R,m_colorR);
DDV_MinMaxInt(pDX,m_colorR, 0, 255);
DDX_Text(pDX,IDC_COLOR_G,m_colorG);
DDV_MinMaxInt(pDX,m_colorG, 0, 255);
DDX_Text(pDX,IDC_COLOR_B,m_colorB);
DDV_MinMaxInt(pDX,m_colorB, 0, 255);
//----------------------------------
DDX_Text(pDX,IDC_FONT_WIDTH,dlg_hscale);
DDV_MinMaxDouble(pDX,dlg_hscale, 0.1, 5);
DDX_Text(pDX,IDC_FONT_HIGHT,dlg_vscale);
DDV_MinMaxDouble(pDX,dlg_vscale, 0.1, 5);
DDX_Text(pDX,IDC_FONT_SHEAR,dlg_shear);
DDV_MinMaxDouble(pDX,dlg_shear, 0, 1.5);
DDX_Text(pDX,IDC_FONT_THICK,dlg_thick);
DDV_MinMaxInt(pDX,dlg_thick, 1, 20);
//--------------------------------------
DDX_Text(pDX,IDC_TEXT,str_text);
//NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
7. 为‘确认’按键添加消息响应函数。编辑如下:
void TexTSetDlg::OnOK()
{
//TODO: Add extra validation here
UpdateData(TRUE); // 把控件上的数据写入成员变量
CDialog::OnOK();
}
l 对话框的使用
1. 添加‘文字’菜单项,并添加相应的消息处理函数。在消息处理函数中,设置画图标志;
my_draw_flag=6;
2. 编辑OnMouseMove消息处理函数。
2.1. 添加变量
TexTSetDlgdlg;
CvFont font;
double hscale;
double vscale;
double shear=0;
int fontthickness=1;
CStringtext;
2.2. 编写case 6:的程序如下:
if (dlg.DoModal()!= IDOK)
{
OnLButtonUpRunFlag=1;
return;
}
//以下进行参数传递
hscale=dlg.dlg_vscale;
vscale=dlg.dlg_vscale;
shear=dlg.dlg_shear;
fontthickness=dlg.dlg_thick;
text=dlg.str_text;
colorB=dlg.m_colorB;
colorG=dlg.m_colorG;
colorR=dlg.m_colorR;
deletedlg;//删除对话框
cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX,hscale,vscale,
shear,fontthickness);
cvFlip(src);
cvPutText(src, text,iner_point, &font, cvScalar(colorB,colorG,colorR));
cvFlip(src);
OnLButtonUpRunFlag=1;
workImg=cvCloneImage(src);//拷贝到工作区
Invalidate();//重绘
break;
Ø 增补:画圆、矩形、椭圆时,可以画填充图形。
1. 在LineParameter对话框资源上,添加单选按钮。
设置相应的属性。
2. 为该单选按钮添加事件处理函数OnMyDrawFull。
3. 增加BOOL型成员变量full,并在构造函数中初始化为FALSE。
4. 在单选按钮事件处理函数中将full设置位TRUE
Ø CXXXXView中,各个菜单项的修改。
1. 在CXXXXView类中增加BOOL类型成员变量m_FullOrNot,并在构造函数中进行初始化为FALSE。
2. 在矩形,椭圆,圆菜菜单项的消息处理函数上添加对话框传递语句: m_FullOrNot=dlg.full;
3. 在OnMouseMove消息处理函数中,修改thickness赋值语句,将其修改为:
if(m_FullOrNot==TRUE)
{
thickness=-1;//填充
}
else
{
thickness=m_LineWidth;
}
实时修改鼠标绘图是的光标
1. 插入,资源,选择光标资源,新建
2. 此时资源框图如下:
3. 用右边的画图工具画出如下光标图形
4. 在CXXXXView类得OnMouseMove函数中添加下列语句
SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1)); // 加载光标资源
注意添加的位置
1.1.5-学习Opencv与MFC混合编程之---画图工具 输入文字和填充图像 修改光标的更多相关文章
- 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.对话框属性如下: 双击 ...
- 1.1.2-学习Opencv与MFC混合编程之---画图工具 画直线 画圆 画矩形
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961685 画图工具 1. 画直线 Ø 增加‘直线’菜单项,建立类向导: Ø 对CXX ...
- 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.7-学习Opencv与MFC混合编程之---为画图工具添加工具栏
源代码:http://download.csdn.net/detail/nuptboyzhb/3961701 哎,其实里面有很多图片的,本来看起开很明了的,资源连接里有详细的文档,比下面的看的舒服的多 ...
随机推荐
- Cocos2d-x 精灵碰撞检測(方法二)
将"Cocos2d-x 精灵碰撞检測(方法一)" update函数改动一下. 使用精灵boundingBox函数获取直接精灵边界框, 不用自己计算精灵矩形大小了,还比較精确,然后调 ...
- 将其它图片格式转为.eps格式
假设是用origin的话就不存在这个问题. 倘若你是用excel绘图的话. 1.先将excel导出为.pdf文件 2.用Adobe Acrobat Pro 打开pdf,用其它的pdf软件貌似不行 3. ...
- 你喜欢SOAP吗?反正我不喜欢!
叫什么Simple Object Access Protocol,实际上一点都不Simple! 说什么轻量级协议,从它基于XML的编码就知道它有多臃肿! 说什么跨平台特性,其实各个语言需要自己实现一整 ...
- ThinkPHP文件上传类
TP框架自带文件上传类使用: 类文件在ThinkPHP/Library/Think/默认在目录下 public function upload(){ $upload = new \Think\Uplo ...
- 2014年百度之星程序设计大赛 资格赛第一题 (longlong)
解题思路: 只要看(A-V)*K 这个公式的更新值是否大于等于A ,大于的话继续循环,否则报错 注意一点,数据会爆int WA代码: #include<stdio.h> int main( ...
- 基于visual Studio2013解决C语言竞赛题之0514单词统计
题目 解决代码及点评 /************************************************************************/ /* 14. 有一行字 ...
- 腾讯QQ:异地登陆也被封号,你们是怎么决策的???
此文我想放到首页,让很多其它的人看到,更期待有人能解释一下.希望管理员给开绿灯. 今天真是费解,我的手机号是青岛的.可是我在武汉工作,因为是3G的卡,全国没有漫游,打电话也没多少钱,所以就没换号. 谁 ...
- Swift编程语言学习11—— 枚举全局变量、局部变量与类型属性
全局变量和局部变量 计算属性和属性监视器所描写叙述的模式也能够用于全局变量和局部变量,全局变量是在函数.方法.闭包或不论什么类型之外定义的变量,局部变量是在函数.方法或闭包内部定义的变量. 前面章节提 ...
- Java之GUI编程(一)
GUI全称Graphical User Interfaces,意为图形用户户界面,又称为图形用户接口.GUI指的就是採用图形方式显示的计算机操作用户界面,打个例如吧.我们点击QQ图标,就会弹出一个QQ ...
- G-Sensor 校准标准
在桌面上水平平,自己的前表面. 此时Z轴应+值,和值至9.8大约,x.y轴应0值大约.它是平行于主体x轴,固定的左,提起右侧时,,x轴数值它应0开始增加.直到垂直时,+9.8大约. 为y轴.下面固定. ...