CDibObject类应用实例文档Word格式文档下载.docx
《CDibObject类应用实例文档Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《CDibObject类应用实例文档Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
3.4.1建立应用程序框架
使用MFCAppWizard创建图像处理应用程序基本框架:
从“文件”菜单中选择“新建”菜单项,弹出“新建”对话框。
选择“工程”选项卡,从项目类型中选择MFCAppWizard(.exe),在“工程名称”文本框中输入项目名称,设为本人姓名。
在MFCAppWizard-Step1对话框中选择MDI用户界面和中文[中国]。
在MFCAppWizard-Step6对话框中将CDipView类的基类改为CScrollView以支持试图滚动。
其他项采用默认值。
单击完成按钮,再单击“确定”按钮,MFCAppWizard将自动生成图像处理程序的各个源文件。
(7)将”mageErrors.h”、”DibObject.h”、”DibObject.cpp”、”ImageLoad.dll”、”ImageLoad.h”、”ImageLoad.lib”六个文件复制到当前工程目录中。
(8)选择VC++集成开发环境的“工程\增加到工程\文件…“菜单项,系统打开“插入文件到工程“对话框。
选择”DibObject.h”、”DibObject.cpp”、”ImageLoad.lib”文件,单击”确定“将这两个文件添加到当前工程中。
3.4.2添加消息映射函数
为应用程序类CZouJieApp带有的“文件\新建”“文件\打开”菜单项添加消息映射处理函数。
使用MFCAppWizard分别为ID_FILE_NEW和ID_FILE_OPEN两个菜单命令消息添加“OnFileNew”和“OnFileOpen”函数。
3.4.3改写OnFileOpen函数以打开图像文件
在ZouJie.cpp文件头部添加如下代码:
注意:
szFilter中不能包含任何空格,并且szFilter声明为全局变量。
3.4.4添加CZouJieObject类对象成员变量
文档类CZouJieDoc负责维护文档的具体数据,因此在该类中声明两个公有型的成员变量如下:
另外,声明的指针型变量还应在类的构造函数和析构函数中正确地初始化和释放。
为此在CZouJieDoc类的构造函数和析构函数中添加如下代码:
当删除了指针所指向的对象时,相应的指针本身并没有删除,此时指针变量本身的值指向何处是个未知数,因此将其复制为NULL。
在“StdAfx.h”文件中添加如下代码:
3.4.5为CZouJieDoc文档类映射消息处理函数
使用MFCAppWizard分别为ID_FILE_NEW、ID_FILE_OPEN、ID_FILE_SAVE_AS菜单命令消息添加消息映射处理函数OnFileNew()、OnFileOpen()和OnFileSaveAs()函数。
(1)ID_FILE_NEW消息处理函数什么都不做不添加代码;
(2)ID_FILE_OPEN消息处理函数代码如下:
在此再一次使用了数组szFilter,但它并不在“ZouJieDoc.h”和“ZouJieDoc.cpp”两个文件中声明,因此,需要在“ZouJieDoc.cpp”头部添加如下声明信息:
成员函数ReadImgToDoc()负责读入图像对象文件,其声明与实现文件如下:
在文档类CZouJieDoc中添加如下成员变量代码:
在“ZouJieDoc.cpp”文件中添加如下代码:
(3)ID_FILE_SAVEA消息处理函数代码如下:
3.4.6绘制读入的图像
具体的图像绘制任务是在CZouJieView视图类成员函数CZouJieView:
:
OnDraw中完成的,其代码如下: