logo资料库

教你使用VC打开BMP图像.doc

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
VC 实现 bmp 位图的打开 0.准备工作
创建一个 SDI(单文档接口),工程名 Test,“CScrollView”表示滚动显示。 向导自动生成了 5 个类。 可以编译、运行一下。 说明:MFC 框架的核心是文档——视结构,它将数据和对数据的观察相分 离, ① 文档仅处理数据的读写操作,数据保存在文档类的成员变量中, ② 视是用来显示和处理数据的窗口。视图从文档类中(而不是从存储介质
中)将文档中的数据取出来,然后在屏幕上显示文档的数据。 MFC 框架通过命令和消息将他们结合起来。 1.添加头文件和程序(主要用于图像处理) ①头文件 Cdib.h 将头文件的程序拷贝过来 ② 程序 CDIP.cpp
将程序拷贝过来 注释:(此时可以运行,并且可打开文件,但是没有结果显示) 2.创建菜单(设计用户界面) 创建两个菜单: Caption: 打开 ID: ID_FILE_OPEN Caption: 显示原图 ID: ID_YUANTU (1)显示原图 右击,出现上面菜单,选择“建立类向导”
选择“Add Function” “OK” 选择“Edit Code”,进入程序编写代码 void CTestView::OnYuantu()。
(2)打开文件 选择“Add Function” “OK”
选择“Edit Code”,进入程序编写代码 void CTestView::OnYuantu()。 (3)添加的内容 (a)TestDoc.h 中: 前面 //很重要,添加内容 #include "CDIB.h" class CTestDoc : public Cdocument {public: //***************** CDib CDibNew; CString filename; …… //用于 testDoc.cpp 文件中的变量 (b)TestView.h 中 class CTestView : public CScrollView { // Operations public:
//**************** CString filename; int state1; //存储文件名 //按下“图像显示”按钮的标示, …… 3.打开菜单进行响应(编写函数代码) 右键打开菜单,建立类向导, ①在 CTestDoc 类中,进行 COMMAND 响应,生成 OnFileOpen 函数, ②在 CtestView 类中,进行 COMMAND 响应,生成 OnYuanTu 函数 步骤:选择“Edit Code”,进入程序编写代码 void CTestView::OnYuantu()。 代码参考程序 4.显示图像 显示图像当然要在 View 类中,因此图像的显示操作要在该类的 OnDraw 函 数中进行 在该类中,我们要在菜单中点解“图像显示”按钮,然后才显示图像,所以我 们要先响应菜单中“显示原图”命令。因此,右键“显示原图”,建立类向导,在 CTestView 类中进行 COMMAND 响应,生成 OnYuanTu 函数,代码参考程序: 接下来,在点击“显示原图”按钮之后,就要在 OnDraw 函数中显示图像了, 代码参考程序 5.运行程序 运行程序,就可以打开一幅位图并显示 打开文件显示的流程: 1. 2. 3. 4. 用 ClassWizard 建立打开文件的消息处理函数 建立类 CFileDialog 的对象,获取 bmp 文件路径 建立类 CFile 对象,读取 bmp 文件内容,包括判断是否 bmp 文件, 读写图像尺寸、读取图像数据到图像数据数组。 通过 CDC 类从图像数据数组中取图像数据显示。
分享到:
收藏