源代码:http://download.csdn.net/detail/nuptboyzhb/3961696

输入文字

对话框

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();

}

对话框的使用

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.1.4-学习Opencv与MFC混合编程之---画图工具 画椭圆

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961690 1.    增加‘椭圆’菜单项,设置属性,添加类向导: 2.    编辑消息处理函数, ...

  2. 1.1.3-学习Opencv与MFC混合编程之---画图工具 通过对话框进行工具的参数设置 画曲线 绘图校正

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961688 l 对话框 1.“插入”->“资源”->“对话框” 2.对话框属性如下: 双击 ...

  3. 1.1.2-学习Opencv与MFC混合编程之---画图工具 画直线 画圆 画矩形

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961685 画图工具 1.     画直线 Ø  增加‘直线’菜单项,建立类向导: Ø  对CXX ...

  4. 1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961674 写视频文件 Ø 新建菜单项,Learning OpenCV——> OpenCVr ...

  5. 1.0.x-学习Opencv与MFC混合编程之---视频运动检测

    源代码地址: http://download.csdn.net/detail/nuptboyzhb/3961668 版本1.0.x新增内容 视频运动检测 Ø 新建菜单项,Learning OpenCV ...

  6. 1.0.3-学习Opencv与MFC混合编程之---打开本地摄像头

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961643 版本1.0.3新增内容 打开摄像头 Ø 新建菜单项,Learning OpenCV——&g ...

  7. 1.0.2-学习Opencv与MFC混合编程之---为播放AVI视频添加滑动条

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961642 版本1.0.2新增内容 Ø  全局变量和函数的添加: 在CVMFCview.cpp文件 ...

  8. 1.0.1-学习Opencv与MFC混合编程之---播放AVI视频

    资源源代码:http://download.csdn.net/detail/nuptboyzhb/3961639 版本1.0.1新增内容 Ø  新建菜单项,Learning OpenCV——> ...

  9. 1.1.7-学习Opencv与MFC混合编程之---为画图工具添加工具栏

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961701 哎,其实里面有很多图片的,本来看起开很明了的,资源连接里有详细的文档,比下面的看的舒服的多 ...

随机推荐

  1. stm32之中断系统

    概述: 提供中断控制器,用于总体管理异常,称之为“嵌套向量中断控制器:Nested Vectored Interrupt Controller (NVIC) VIC:中断管理器: NVIC:内嵌中断管 ...

  2. Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0

    今天在真机调试低版本系统的时候出现如题类似Layout Max Width在ios 8 之前不适用的问题, 初步估计是autolayout 所导致的 查找资料解决方法如下: 将label下Preffe ...

  3. .NET通过PowerShell操作ExChange为用户开通邮箱账号

    最近工作中一个web项目需要集成exchange邮箱服务,注册用户时需要动态创建邮箱用户,终于在http://www.cnblogs.com/gongguo/archive/2012/03/12/23 ...

  4. 《算法导论》读书笔记之图论算法—Dijkstra 算法求最短路径

    自从打ACM以来也算是用Dijkstra算法来求最短路径了好久,现在就写一篇博客来介绍一下这个算法吧 :) Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的 ...

  5. ZOJ 2853 Evolution 【简单矩阵快速幂】

    这道题目第二次看的时候才彻底理解了是什么意思 把题目转化为数学模型分析后就是 有一个初始序列, 有一个进化率矩阵 求的是初始序列 与进化率矩阵进行 m 次运算后, 初始序列最后一位的答案 那么显然,可 ...

  6. CodeForces 22B Bargaining Table 简单DP

    题目很好理解,问你的是在所给的图中周长最长的矩形是多长嗯用坐标(x1, y1, x2, y2)表示一个矩形,暴力图中所有矩形易得递推式:(x1, y1, x2, y2)为矩形的充要条件为: (x1, ...

  7. 引用 移植Linux到s3c2410上

    引用 bsky 的 移植Linux到s3c2410上来源:http://www.embed.com.cn/downcenter/Article/Catalog12/4000.htm 移植Linux到s ...

  8. poj1920 Towers of Hanoi

    关于汉诺塔的递归,记住一个结论是,转移n个盘子至少需要2^n-1步 #include<iostream> #include<cstdio> #include<cmath& ...

  9. Linux内核空间-用户空间通信之debugfs

    一.debugfs文件系统简介 debugfs虚拟文件系统是一种内核空间与用户空间的接口,基于libfs库实现,专用于开发人员调试,便于向用户空间导出内核空间数据(当然,反方向也可以).debugfs ...

  10. NanShan即时通讯论——HTML5的优势与劣势

    原文:NanShan即时通讯论--HTML5的优势与劣势 NanShan即时通讯 学习html时才是XHTML 1.0,接着是 HTML4.01,再到HTML5,如今HTML5 開始吸引越来越多的人的 ...