VC实现bmp位图的打开(操作完整版)

更新时间:2023-07-26 19:20:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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.

用ClassWizard建立打开文件的消息处理函数 建立类CFileDialog的对象,获取bmp文件路径

建立类CFile对象,读取bmp文件内容,包括判断是否bmp文件,读写图像尺寸、读取图像数据到图像数据数组。 通过CDC类从图像数据数组中取图像数据显示。

4.

本文来源:https://www.bwwdw.com/article/tm1m.html

Top