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 哎,其实里面有很多图片的,本来看起开很明了的,资源连接里有详细的文档,比下面的看的舒服的多 ...
随机推荐
- C# L该系统的应用istView简单的图像浏览器
最近有同学问我怎么用ListView加载图像列表,在...前面"C#系统中的应用"于TreeView+ListView+ContextMenuStrip控件实现树状图显示磁盘文件夹 ...
- 数据库 isnull()、nvl()、ifnull() 使用
SqlServer 插入字段值 为空 设置默认值 isnull(val_1,val_2) 当val_1为 null 的时候 返回 val_2的值 Oracle nvl(val_1,val_2) 当va ...
- ViewPager实现广告自动轮播核心代码(Handler+Thread)
ViewPager数据源是4个线性布局,每个布局里面充满一张高度固定.宽度充满父布局的图片.有4个小圆点跟随ViewPager滑动.轮播原本我是用Timer+TimerTask的,但是问题颇多,很是郁 ...
- 一天一个类 --- StringTokenizer
这是一个将字符串按照指定的delimiters(分隔符)进行分割的类. 首先看看他的构造函数: public StringTokenizer(String str, String delim, boo ...
- mul16
设计思想:乘法运算本身就可以看做是一个移位相加的过程 1 1 0 1 0 = 26* 1 0 1 1 1 = 23 ...
- 【HTTP 2】启用 HTTP 2(Starting HTTP/2)
[HTTP 2]启用 HTTP 2(Starting HTTP/2) 四月 1, 2016 ~ LITECODES 前情提要 在上一篇文章<[HTTP 2]HTTP/2 协议概述(HTTP/2 ...
- C# 使用PictureBox控件--点击切换图片
效果: 1. 2. 代码: private Boolean fals = true; /// <summary> /// 单击事件 /// </summary> /// < ...
- jz2440烧写开发板uboot,内核和文件系统等的相关命令
下载文件{ftpget -u 1 -p 1 192.168.2.110 a.out a.outnfs 30000000(destination) 192.168.2.109:/home/fs/work ...
- BZOJ 2330: [SCOI2011]糖果( 差分约束 )
坑爹...要求最小值要转成最长路来做.... 小于关系要转化一下 , A < B -> A <= B - 1 ------------------------------------ ...
- Qt Charts的简单安装与使用
http://blog.qt.io/blog/2016/01/18/qt-charts-2-1-0-release/ 下载地址: https://codereview.qt-project.org/# ...