收藏 分享(赏)

Google地图道路识别.doc

上传人:hwpkd79526 文档编号:9058469 上传时间:2019-07-22 格式:DOC 页数:25 大小:1MB
下载 相关 举报
Google地图道路识别.doc_第1页
第1页 / 共25页
Google地图道路识别.doc_第2页
第2页 / 共25页
Google地图道路识别.doc_第3页
第3页 / 共25页
Google地图道路识别.doc_第4页
第4页 / 共25页
Google地图道路识别.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、西北农林科技大学信息工程学院应用软件课程设计论文 题 目: google 地图中道路的识别 学 号 09107002姓 名 林鹤智专业班级 计算机科学与技术 071 班指导教师 宁纪锋实践日期 2010 年 9 月 5 日-2010 年 9 月 17 日2007 级计算机科学与技术 071 班应用软件课程设计论文1目 录一、综合训练目的与要求 .2二、综合训练任务 .2三、总体设计 .2四、详细设计说明 .3(1)配置环境 3(2)生成单文档应用程序 6(3)加入 OpenCV 库支持 7(4)在 Doc 类中添加变量 .8(5)添加虚函数 8(6)在 View 类中添加显示图像代码 .9(6

2、)在 Doc 类中添加图像处理函数 .10在 CSetDlg 类中 添加参数设置函数 12五、调试与测试 .16(1)调试方法 16(2)测试结果的分析和讨论 16(3)主要问题及措施 16(4)对存在问题的思考 16六、实习日志 .17七、实习总结 .18八、附录:核心代码清单 .182007 级计算机科学与技术 071 班应用软件课程设计论文2一、综合训练目的与要求应用软件课程设计是计算机科学与技术专业本科生必修的一门课程,该课程是面向对象程序设计、数据结构、算法、计算机图形学、计算机网络等课程的综合应用,在整个教学体系中占据非常重要的地位。为了使本次综合训练能达到预期的效果,现具体做以下

3、几点要求:1.要求利用软件工程思想以及模块化开发来完成系统的设计。2.要求能综合运用多个知识点的内容进行比较复杂的应用程序开发。3.小组内成员之间应合理的分工,协调工作,最终能合作完成本次综合训练的题目。二、综合训练任务我们小组本次应用软件课程设计的题目是 Google 地图中道路的识别,从 Google地球图像中获取地理信息已经成为人们日常生活的一部分。随着技术的发展,高分辨率,高精度,多时相,多光谱的图像处理技术越来越成为受到更多人得关注。道路识别是其中一个分支。道路识别技术的应用对人们的生活和出现具有导向作用。由以上分析,我们可以充分认识到设计并开发一个 google 地图中道路的识别程

4、序的必要性和迫切性,本次设计和开发得系统应利用 OPENCV 来实现学生信息管理,软件应该实现载入图像、显示图像、标示图像、保存图像、同时根据不同的图像,设置不同的道路识别算法和参数,以优化道路识别结果。最终实现一个完整的、可运行的Google 地图中道路的识别软件。三、总体设计开发一款基于 OpenCV 开源计算机视觉库,以 Microsoft visualC+ 6.0 为开发环境,处理 Google 地图中的图像识别道路并标记的软件。它能够打开输入任意一张图像,帮助用户在一张包括居民区、道路、各种建筑、农田等模块的 Google 地图中,快速查找道路的位置,且能根据图像的标注,形成一条连续

5、的路径。1利用 OpenCV 开源计算机视觉库,以 Microsoft visualC+ 6.0 为开发环境开发MFC 程序。2理解 hough 变换原理,根据特定的地理位置,和后期的道路标示的优化改进算法(根据道路的平行性,连续性,直线性) 。3.图像处理的过程如下:2007 级计算机科学与技术 071 班应用软件课程设计论文3(1)先对图像进行预处理(边际检测排除干扰和噪声)(2)再 hough 变换算法进行处理,接着优化处理(排除明显的错误和道路融合)(3)最后过滤干扰区域输出显示对道路进行标识后的图像。在 Google 地图中道路的识别软件的分工上,我们小组把系统设计分为三大方面:图像

6、处理模块、面向用户的界面的设计、模块的整合以及系统测试。四、详细设计说明(1)配置环境在软件制作过程中个,我们需要做许多对图像的操作,需要在实习机子上安装 OpenCV 软件。但在安装该软件的过程中,出现了许多问题。首先,机房每台实习机器为了安全,都配置有还原卡,而在安装完该软件,并配置完环境变量之后需要重新启动计算机,这样之前的配置也会消失。在与看管机房的老师协商之后,我们获得了短暂的不带有还原卡搭建实习环境的时间。其次,由于对 OpenCV 软件不太了解,第一次安装的 OpenCV 2.0 版本与 C+ 6.0 不能很好的兼容,导致在搭建环境过程中出现了许多问题。在清楚了问题的原因之后,重

7、新安装了 1.0 版本。主要环境搭建如下:图 1 图像处理过程图预处理边缘检测 Hough变换线条检测过滤干扰区域输入图像2007 级计算机科学与技术 071 班应用软件课程设计论文4在 C+ 6.0 中做如下配置:2007 级计算机科学与技术 071 班应用软件课程设计论文52007 级计算机科学与技术 071 班应用软件课程设计论文6(2)生成单文档应用程序我使用的是 Visual C+ 6.0。首先,按照 VC 的向导,产生一个默认的 MFC 的工程,注意,选择 SDI 单文档支持的,同时最好选择“use MFC As a static library”(防止 MFC 中使用 OpenC

8、V 的内存泄露问题)具体请参看下面两幅图所示2007 级计算机科学与技术 071 班应用软件课程设计论文7就这样子一路下去之后,基本的 MFC 框架就创建完成了。 (3)加入 OpenCV 库支持现在加入 openCV 必须的头文件和库文件。如下图所示,我们添加库文件: cxcore.lib cv.lib highgui.lib (4)在 Doc类中添加变量找到 *Doc 也就是文档类的定义,在开头加上 HighGui.h 的头文件包含, 同时添加一个变量 CImage m_image;。 (5)添加虚函数添加两个函数,分别用来打开图片文件和保存图片文件,添加过程见下图的右键菜单。分别添加函数

9、 OnOpenDocument 和 OnSaveDocument 如下面的代码 2007 级计算机科学与技术 071 班应用软件课程设计论文8BOOL CSDI OpenCVDoc:OnOpenDocument(LPCTSTR lpszPathName)if (!CDocument:OnOpenDocument(lpszPathName) return FALSE;/ TODO: Add your specialized creation code herem_image.Load(lpszPathName);return TRUE;BOOL CSDI OpenCVDoc:OnSaveDocu

10、ment(LPCTSTR lpszPathName)/ TODO: Add your specialized code here and/or call the base classm_image.Save(lpszPathName);return TRUE;/ return CDocument:OnSaveDocument(lpszPathName);注意,上面本来是 return CDocument:OnSaveDocument(lpszPathName); 但是后来发现有问题,保存了图片,会导致保存后的图片的大小变成 0 了,改用 return TRUE;就没有问题了(6)在 View

11、类中添加显示图像代码在 View 类中间添加必要的图片显示代码,主要是在 Ondraw 里面。 void CSDI_OpenCVView:OnDraw(CDC* pDC)CSDI_OpenCVDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCImage CRect r;GetClientRect (img.DrawToHDC(pDC-GetSafeHdc() ,r);编译整个程序,就可以通过“打开菜单”打开图像并且显示在 MFC 的 View 类中了。 (6)在 Doc

12、类中添加图像处理函数在 Doc 类中间添加必要的图像处理算法,主要是在 OnIdentity()里面。 void CTest_mfcDoc:OnIdentity() / TODO: Add your command handler code here/载入已打开图片,供后面操作使用,会变成单通道2007 级计算机科学与技术 071 班应用软件课程设计论文9IplImage* src=cvLoadImage(tmp_lpszPathName,0);IplImage* dst;IplImage* color_dst;CvMemStorage* storage = cvCreateMemStorag

13、e(0);CvSeq* lines = 0;int i;dst = cvCreateImage( cvGetSize(src), 8, 1 );color_dst = cvCreateImage( cvGetSize(src), 8, 3 );cvCanny( src, dst, temp6, temp5, 3 );cvCvtColor( dst, color_dst, CV_GRAY2BGR );#if 0lines = cvHoughLines2( dst, storage, CV_HOUGH_STANDARD, 1, CV_PI/180, 100, 0, 0 );for( i = 0;

14、i total,100); i+ )float* line = (float*)cvGetSeqElem(lines,i);float rho = line0;float theta = line1;CvPoint pt1, pt2;double a = cos(theta), b = sin(theta);double x0 = a*rho, y0 = b*rho;pt1.x = cvRound(x0 + 1000*(-b);pt1.y = cvRound(y0 + 1000*(a);pt2.x = cvRound(x0 - 1000*(-b);pt2.y = cvRound(y0 - 10

15、00*(a);cvLine( color_dst, pt1, pt2, CV_RGB(255,0,0), 3, CV_AA, 0 );#elselines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, temp4, CV_PI/180, temp1, temp1, temp3 );for( i = 0; i total; i+ )CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i);cvLine( color_dst, line0, line1, CV_RGB(255,0,0), 3, C

16、V_AA, 0 );#endifcvNamedWindow( “Hough“, 0 );cvShowImage( “Hough“, color_dst );2007 级计算机科学与技术 071 班应用软件课程设计论文10cvWaitKey(0); cvReleaseImage(cvReleaseImage(cvReleaseImage(编译整个程序,就可以识别图像中的道路并且显示。在 CSetDlg 类中添加参数设置函数在 CSetDlg 类中间添加必要的图像处理参数,首先添加设置对话框。总共要添加 5 个参数,添加了五个编辑框,分别映射到 5 个变量void CSetDlg:DoDataEx

17、change(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CSetDlg)DDX_Text(pDX, IDC_EDIT1, m_para1);DDX_Text(pDX, IDC_EDIT3, m_para3);DDX_Text(pDX, IDC_EDIT4, m_para4);DDX_Text(pDX, IDC_EDIT5, m_para5);DDX_Text(pDX, IDC_EDIT6, m_para6);/AFX_DATA_MAP设置和更新函数是在 OnOk1()里面。 void CSetDlg:OnOk1()

18、 / TODO: Add your control notification handler code here2007 级计算机科学与技术 071 班应用软件课程设计论文11UpdateData(TRUE);if(m_para1)temp1=m_para1;/if(m_para2)temp2=m_para2;if(m_para3)temp3=m_para3;if(m_para4)temp4=m_para4;if(m_para5)temp5=m_para5;if(m_para6)temp6=m_para6;UpdateData(FALSE);CDialog:OnOK(); 设置前的参数:设置后

19、的参数:改进后的效果图:在 Google 地图道路识别系统中,我负责的用 MFC 编写用户图形接面设计以及软件调试。在本系统的构造中,我采用 MFC 引用 OPENCV 图形接口,从而通过调用封装的接口以及接口中的方法实现系统的功能。在程序的整合阶段,通过各个模块预留的接口,将各个模块进行整合,从而实现一个完整的 Google 地图道路识别软件。2007 级计算机科学与技术 071 班应用软件课程设计论文12五、调试与测试(1)调试方法调试是排除程序中的错误,使程序正常运行并符合设计者的意图的过程。在调试过程中很多时候都会出现许多异常情况,如空指针异常、class not find 这类错误。

20、在对此系统进行调试时,采用每一个类分别测试的方法,即对每一个类分别进行调试代码。具体方法是在本系统的工程中建立一个用于调试的主函数类,然后在主函数中分别调用每一个类的实现,观察其结果与实际应得结果的差距,然后调试代码进行必要的修改。最后整合每个类,然后再进行调试、修改,直到最后的输出结果正确为止。(2)测试结果的分析和讨论测试是通过输入不同的数据来判断程序的健壮性、完整性等。测试主要需要输入各类数据来判断,跟调试是完全不同的一个概念。测试主要是针对用户的而调试是针对程序员的。如果在调试阶段出现问题,则大部分都是代码的语法出现错误。在测试阶段,如果是界面直接打开就出现异常,则一定是用 JAVA

21、语言在编程的时候逻辑出现错误。在这种情况下,一般要看程序的逻辑结构是否正确和你的思想是否正确。如果是在界面打开后基本上可以运行但有的结果出现异常,那就表明是程序中与其相关代码出现了错误,那就重新采用上述的方法进行单独的调试与测试,然后整合代码再测试。(3)主要问题及措施在程序的编程过程中,由于在编程的时候不认真、不仔细,以及一些设计上的疏忽,导致在调试过程中很多时候都会出现异常情况,如空指针异常、class not find 这类错误。针对空指针异常,大多数情况是对某个类的实现未进行初始化导致的;而 class not find 这类错误则是所调用的某个类不存在或是为调用某个类造成的。在整合的

22、过程中,由于以前我们都没有合作的经验,以及从未做过这么大的项目,所以在整合的过程中遇到了很多的问题,如:对类的命名不标准、所有的类都放在同一个包中。同时还有就是每个人在写程序的时候都是自己的风格,导致一开始不太了解这个类的意思。虽然整合的道路非常困难,但是通过对类的不断了解、修改,到下午下机的时候,基本上已经完成了系统的整合,系统已经初步成形了。(4)对存在问题的思考在测试阶段,程序因为我的不认真而出现了问题,并且浪费了大量的时间。但这也说明了一个问题,那就是我平时不太爱编程序,到实战时就出现了这种低级的错误,并且不能很快的发现。因此,在学习生活中,不能只看书本知识,而且还应该多上机2007

23、级计算机科学与技术 071 班应用软件课程设计论文13来了解计算机,来编写程序。六、实习日志2010 年 9 月 6 日 星期一今天是应用软件课程设计实习的第一天,我们一大早来到了计算机机房。早上,我们小组的成员对本次计实习的题目Google 地图道路识别做了一个简单的讨论,对应该如何做、怎样做这几方面的问题都谈了一下个人的看法。通过小组成员讨论的结果和大体的方向,我们都在网上查找了一些基本的资料和借鉴了别人做的系统。下午,我们通过早上查找的资料,修正和完善了我们的方案,在老师的指导下最终得出了一个具体的实施方案采用 MFC 语言和 OPENCV 图形接口的实现系统的设计。同时通过对方案的细分

24、,我们把系统划分为了三大模块,最近根据小组成员的个人特长,划分了每个人的具体任务。2010 年 9 月 7 日 星期二我负责用户图形界面的设计。必须要在 VC 中配置 OPENCV 环境,这里我们在http:/ opencv 中文网站上得到了详细的配置方法和步骤。最后,通过自己总结所得的具体的实施方法,书写了本次实习的实施计划书。2010 年 9 月 8 日 星期三在前两天的实习准备阶段,我们小组确立了 Google 地图道路识别系统的具体实施方案,并且划分了每一个人的实施模块。今天我的主要任务是在昨天的配置环境的基础上生成单文档应用程序。2010 年 9 月 910 日 星期四、五接下的两天

25、我学习了在 MFC 中使用 OpenCV,了解 OpenCV 中,数组操作,绘图函数,图像处理,模式识别。具体的有图像文件读入和显示,图像文件的创建、保存和复制canny 边缘检测,Hough 线段检测,图像颜色分布直方图,高级图像处理等知识和技术,为后期的编程做好了理论基础。2010 年 9 月 12 日 星期一我和研究图像处理算法的队友讨论对图像的进行 canny 边缘检测,以及 Hough 变换,对线段的标识。接着我编写了道路识别事件响应函数中,函数中包括了 canny 边缘检测,以及Hough 变换,对线段的标识的算法。2007 级计算机科学与技术 071 班应用软件课程设计论文142

26、010 年 9 月 13 日 星期二我们发现算法对大部分图像道路的识别较差,我们提出了我们的改进方案。我们的改进的方案之一便是改变算法中的关键参数来实现预期的 Google 地图道路识别的效果。为此我们预留了用户手动设置参数的接口,并且详细说明了这些参数的含义。2010 年 9 月 14 日 星期三本次实习已基本上完成了,通过昨天各个模块的整合,一个 Google 地图道路识别系统已经初见雏形。接下来我们要做的是测试。在测试的过程中老师提出了很多宝贵的意见并指出我们的应用程序还需要改进和优化。2010 年 9 月 15 日 星期四转眼间本次实习已经要结束了,我们在百忙之中尝试解决多视图的问题,

27、闪屏的问题,图像显示尺寸的问题,虽然很多问题都没有得到实质性的解决,但是在这过程中我们学会查看英文文档 MSDN,体会到 MFC 编程的事件响应,消息驱动的机制七、实习总结通过两周的实习,我收获了不少。首先,当一个项目很庞大的时候,一个人把所有的事都做很困难,要学会与团队协作,一起完成课程设计。其次,在实施项目之前,要设计好实施计划,理论上要过硬,行的通。第三,还要充分从深层次理解所用到的技术,若还不熟悉那么要提前充电,不要编写代码边学习,大部分情况下写出来的代码都不符合规范。第四,实习过程中有时候没有方向,没有思路,情绪低落,可以和队友沟通,让队友帮助你度过难关。八、附录:核心代码清单/ t

28、est_mfcDoc.cpp : implementation of the CTest_mfcDoc class/#include “stdafx.h“#include “test_mfc.h“#include “test_mfcDoc.h“2007 级计算机科学与技术 071 班应用软件课程设计论文15#include “mainfrm.h“ #include “string.h“#include #include #include #include #ifdef _DEBUG#define new DEBUG_NEW#define CV_COMP_CORREL 0 /直方图相似度对比方法

29、,本程序采用 CORREL 0#define CV_COMP_CHISQR 1#define CV_COMP_INTERSECT 2#define CV_COMP_BHATTACHARYYA 3#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifCString tmp_lpszPathName; /打开文件的文件名int temp1=50,temp3=10,temp6=100,temp5=200;float temp4=1;/ CTest_mfcDoc2007 级计算机科学与技术 071 班应用软件课程设计论文16IMPLEMENT_DYN

30、CREATE(CTest_mfcDoc, CDocument)BEGIN_MESSAGE_MAP(CTest_mfcDoc, CDocument)/AFX_MSG_MAP(CTest_mfcDoc)ON_COMMAND(IDM_Identity, OnIdentity)ON_COMMAND(ID_BUTTON32772, OnIdentity)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CTest_mfcDoc construction/destructionCTest_mfcDoc:CTest_mfcDoc()/ TODO: add one-time constructio

31、n code hereCTest_mfcDoc:CTest_mfcDoc()BOOL CTest_mfcDoc:OnNewDocument()if (!CDocument:OnNewDocument()return FALSE;SetTitle(“Google 地图中道路识别 2.0“);/ TODO: add reinitialization code here/ (SDI documents will reuse this document)2007 级计算机科学与技术 071 班应用软件课程设计论文17return TRUE;/ CTest_mfcDoc serializationvoi

32、d CTest_mfcDoc:Serialize(CArchivevoid CTest_mfcDoc:Dump(CDumpContext#endif /_DEBUG/ CTest_mfcDoc commandsBOOL CTest_mfcDoc:OnOpenDocument(LPCTSTR lpszPathName) if (!CDocument:OnOpenDocument(lpszPathName)return FALSE;/ TODO: Add your specialized creation code heretmp_lpszPathName=lpszPathName;m_image

33、.Load(lpszPathName);return TRUE;BOOL CTest_mfcDoc:OnSaveDocument(LPCTSTR lpszPathName) / TODO: Add your specialized code here and/or call the base classm_image.Save(lpszPathName);return CDocument:OnSaveDocument(lpszPathName);void CTest_mfcDoc:OnIdentity() / TODO: Add your command handler code here20

34、07 级计算机科学与技术 071 班应用软件课程设计论文19/载入已打开图片,供后面操作使用,会变成单通道IplImage* src=cvLoadImage(tmp_lpszPathName,0);IplImage* dst;IplImage* color_dst;CvMemStorage* storage = cvCreateMemStorage(0);CvSeq* lines = 0;int i;dst = cvCreateImage( cvGetSize(src), 8, 1 );color_dst = cvCreateImage( cvGetSize(src), 8, 3 );cvCa

35、nny( src, dst, temp6, temp5, 3 );cvCvtColor( dst, color_dst, CV_GRAY2BGR );#if 0lines = cvHoughLines2( dst, storage, CV_HOUGH_STANDARD, 1, CV_PI/180, 100, 0, 0 );for( i = 0; i total,100); i+ )float* line = (float*)cvGetSeqElem(lines,i);float rho = line0;float theta = line1;CvPoint pt1, pt2;double a

36、= cos(theta), b = sin(theta);double x0 = a*rho, y0 = b*rho;pt1.x = cvRound(x0 + 1000*(-b);pt1.y = cvRound(y0 + 1000*(a);pt2.x = cvRound(x0 - 1000*(-b);pt2.y = cvRound(y0 - 1000*(a);cvLine( color_dst, pt1, pt2, CV_RGB(255,0,0), 3, CV_AA, 0 );2007 级计算机科学与技术 071 班应用软件课程设计论文20#elselines = cvHoughLines2(

37、 dst, storage, CV_HOUGH_PROBABILISTIC, temp4, CV_PI/180, temp1, temp1, temp3 );for( i = 0; i total; i+ )CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i);cvLine( color_dst, line0, line1, CV_RGB(255,0,0), 3, CV_AA, 0 );#endifcvNamedWindow( “Hough“, 0 );cvShowImage( “Hough“, color_dst );cvWaitKey(0); cv

38、ReleaseImage(cvReleaseImage(cvReleaseImage(/ CSetDlg dialogCSetDlg:CSetDlg(CWnd* pParent /*=NULL*/): CDialog(CSetDlg:IDD, pParent)/AFX_DATA_INIT(CSetDlg)m_para1 = temp1;m_para3 = temp3;m_para4 = temp4;2007 级计算机科学与技术 071 班应用软件课程设计论文21m_para5 = temp5;m_para6 = temp6;/AFX_DATA_INITvoid CSetDlg:DoDataEx

39、change(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CSetDlg)DDX_Text(pDX, IDC_EDIT1, m_para1);DDX_Text(pDX, IDC_EDIT3, m_para3);DDX_Text(pDX, IDC_EDIT4, m_para4);DDX_Text(pDX, IDC_EDIT5, m_para5);DDX_Text(pDX, IDC_EDIT6, m_para6);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CSetDlg, CDialog)/AFX_M

40、SG_MAP(CSetDlg)ON_BN_CLICKED(IDOK1, OnOk1)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CSetDlg message handlers/DEL void CSetDlg:OnChangeEdit1() /DEL /DEL / CSetDlg setDlg;2007 级计算机科学与技术 071 班应用软件课程设计论文22/DEL / char c10;/DEL / CString str;/DEL / setDlg.m_para1=1;/DEL / setDlg.GetDlgItemInt(IDC_EDIT1,/DEL / str.Fo

41、rmat(“%d“,);/DEL / itoa(setDlg.m_para1, c, 10);/DEL / setDlg.m_para1+;/DEL /DEL / MessageBox(c,“标题“);/DEL /DEL / TODO: If this is a RICHEDIT control, the control will not/DEL / send this notification unless you override the CDialog:OnInitDialog()/DEL / function and call CRichEditCtrl().SetEventMask(

42、)/DEL / with the ENM_CHANGE flag ORed into the mask./DEL /DEL / TODO: Add your control notification handler code here/DEL /DEL /DEL void CSetDlg:OnUpdateEdit1() /DEL /DEL / TODO: If this is a RICHEDIT control, the control will not/DEL / send this notification unless you override the CDialog:OnInitDi

43、alog()/DEL / function to send the EM_SETEVENTMASK message to the control/DEL / with the ENM_UPDATE flag ORed into the lParam mask./DEL /DEL / TODO: Add your control notification handler code here/DEL /DEL void CSetDlg:OnOk1() 2007 级计算机科学与技术 071 班应用软件课程设计论文23/ TODO: Add your control notification hand

44、ler code hereUpdateData(TRUE);if(m_para1)temp1=m_para1;/if(m_para2)temp2=m_para2;if(m_para3)temp3=m_para3;if(m_para4)temp4=m_para4;if(m_para5)temp5=m_para5;if(m_para6)temp6=m_para6;UpdateData(FALSE);CDialog:OnOK(); void CSetDlg:OnChangeEdit1() / TODO: If this is a RICHEDIT control, the control will

45、not/ send this notification unless you override the CDialog:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHANGE flag ORed into the mask./ TODO: Add your control notification handler code herevoid CSetDlg:OnChangeEdit5() / TODO: If this is a RICHEDIT control, the con

46、trol will not/ send this notification unless you override the CDialog:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHANGE flag ORed into the mask.2007 级计算机科学与技术 071 班应用软件课程设计论文24/ TODO: Add your control notification handler code herevoid CSetDlg:OnChangeEdit6() / TODO: If this is a RICHEDIT control, the control will not/ send this notification unless you override the CDialog:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHANGE flag ORed into the mask./ TODO: Add your control notification handler code here

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报