- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MFC的测量程序开发剖析
基于MFC的测量程序开发
摘要:
关键词:
1 界面设计
以坐标转换系统(包括高斯平面坐标、大地空间坐标、空间直角坐标之间的转换)为例,界面设计如下:
对于此类简单的测绘程序设计,在我看来,运用对话框进行编程,已经足够了,如果没有特殊的要求,不建议使用单文档以及多文档。
对于对话框程序的界面设计主要包括:对话框大小、对话框标题、对话框控件的大小与位置设计等3个方面。其中控件的大小与位置设计最为关键,其美观程度也在此体现,一个美观的程序界面能给人耳目一新的感觉,我认为界面设计是很有必要的。
对话框大小的设计我一般是采用黄金矩形比例即1:0.618,如有特殊的要求可适当的加宽或者加长。对话框的标题可直接在对话框属性中的Caption一栏进行修改。常用控件类型分为:GroupBox、ComboBox、Radio、Edit、Button以及ListControl,其中GroupBox控件起到Radio控件分组与包裹其他类型控件的美观作用,ComboBox起到转换方式选择和坐标系选择的作用,不要使用默认大小,要用鼠标进行绘制,其横向长度要能保证大于最长string的长度,其纵向宽度适宜就行,不做特别要求,Radio、Edit和Button控件的大小也是适宜就行,不做特别要求,ListControl控件的长度很重要,必需要能表示所有的列(包括其中的数据),不能存在空间不够而省略表示的现象,如实在是由于对话框大小有限,长度不够,还能在控件初始化时对控件字体大小进行修改,后面会做介绍。
2 初始化
整个程序的初始化是为后面文件读写、计算、绘图等操作的代码编写做铺垫,是构建一个大的框架,之后再编写每一个部分,在编写的过程中,我们可能会发现很多框架所存在的问题,逐渐修改、逐步完善就可以了,就完成了程序的编写。初始化并不是必要的,就算不初始化,也可以逐步完成程序的编写,但初始化后的程序,在接下来的编写过程中,将会更加的流畅,也能加深自己对于整个程序的理解。
程序的初始化主要包括两个部分,变量的初始化和控件的初始化,它们是有一定的联系的,应交叉进行,不可分开处理,下面主要介绍各类控件的初始化。
ComboBox控件初始化:
首先建立一个ComboBox控件变量,然后在InitDialog函数调用Addsting函数添加string字段,调用SetCursel函数参数设为0是为了在打开对话框时ComboBox控件上默认选择第1条字段,然后调用ComboBox控件的响应函数,响应函数里首先要调用GetCursel函数获取当前索引,然后判断索引值,完成ComboBox控件相对应的操作。
Radio控件初始化:
直接在InitDialog函数里创建一个CButton的变量指针获取Radio控件的窗口句柄,然后调用SetCheck函数并将参数设为1,即在打开对话框时选中此Radio按钮,然后调用Radio控件的响应函数,完成相应操作。需要注意的一点就是,要将包围1组Radio控件的Group控件属性栏里边的Group设置为True,否则将造成整个对话框的所有Radio控件为一组,不能同时选取2个Radio控件的情况。
List Control控件初始化:
List Control控件,我又称之为表格控件,主要利用表格进行数据的显示,直接明了。表格控件的初始化直接在InitDialog函数里进行,首先获取表格的大小即Rect,主要是为了接下来每一列宽度的设置做准备,然后进行风格、字体大小、字体颜色的设定,最后依次插入每一列的列名。
3 数据输入
数据的输入有两种形式,一种是文件读入数据,一种是手动输入数据。
3.1 文件读入数据并显示到ListCtrl中
数据文件类型一般常用的是.txt(文本文件)和.xls(表格文件),下面分别对两种类型数据文件的读取进行介绍。
3.1.1 .txt文本文件数据读取
在文本文件中,单个数据之间通常用空格或者逗号来隔开,或者进行换行处理,以下简称为空格类文本文件和逗号类文本文件。
空格类文本文件用C++的fstream来进行读取是非常方便的,但是逗号类文本文件用流来进行读取就显得力不从心了,所以综合空格类文本文件和逗号类文本文件的特点,我们采取一种新的文件读取方式即用MFC中的CStdioFile类来进行文件读取操作,下面介绍具体操作。
双击打开文件Button,创建其响应函数。在响应函数中创建打开对话框获取文件地址并对文件地址进行判定。
文件地址存储在csFileAddress中,文件地址非空判定为空,则弹出提示消息”文件地址错误”,判定为非空则继续往下运行,进行数据的读取操作。
如要读取下一行数据,在再进行一次sf.Readstring()操作即可,最后进行文件的关闭
您可能关注的文档
- 基于C51单片机的8×8LED点阵屏汉字显示剖析.doc
- 基于AT89C51音乐播放器剖析.doc
- (南师大期末考试整理)现代自然地理学精选.docx
- (培训课件)应用PDCA循环进一步完善我院质量与安全管理体系精选.ppt
- 基于Cisco的小型写字楼互联网设计与实现剖析.docx
- (安全生产标准化资料13.1-1-1企业安全标准化绩效评定管理制度精选.doc
- (安全员)2016年最新安全员C证考试题库及答案精选.doc
- (安全生产标准化资料4.2-1-3)安全生产规章制度培训和考核情况精选.doc
- 基于AT89S52单片机及PID算法实现循迹避障功能的智能小车【毕业论文,绝对精品】剖析.doc
- (安全生产标准化资料6.2-1-2)设备设施运行台账精选.doc
- 浙江象荣数字技术有限公司2025年度公开招聘编外工作人员备考题库及答案详解1套.docx
- 成都成华城市建设投资有限责任公司下属企业2025年下半年招聘的备考题库及答案详解1套.docx
- 深圳法院2025年下半年警务辅助人员招录备考题库及参考答案详解.docx
- 广东省茂名市电白区第二次赴高校公开招聘2026年度急需紧缺人才备考题库及答案详解1套.docx
- 楚雄州教育体育局直属学校2025年公开选调工作人员备考题库及1套完整答案详解.docx
- 广外茂名实验2026年春季临聘教师招聘备考题库有答案详解.docx
- 江苏省体育科学研究所2025年公开招聘专业技术人员备考题库有答案详解.docx
- 普洱市第一中学2026年度急需紧缺人才第二批招聘备考题库及一套参考答案详解.docx
- 河南豫能控股股份有限公司及所管企业2026届校园招聘备考题库及参考答案详解.docx
- 广西壮族自治区公安机关2026年人民警察特殊职位招聘195人备考题库及参考答案详解一套.docx
原创力文档


文档评论(0)