欢迎来到天天文库
浏览记录
ID:37713735
大小:40.00 KB
页数:5页
时间:2019-05-29
《VC++位图打开和显示》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、用VC++位图打开和显示步骤:1、首先建立一个工程。打开VC++6.0,单击文件【files】→新建【new】→工程【projects】在打开的projects下选择MFCAppWizard[exe]→在projectname下输入自己的工程名例如(Showpicture)→单击【ok】→在打开的对话框中选择基于单文档【singledocument】→在第四步“MFCAppWizardstep4of6”面板中删掉【隐藏工具栏】和【打印和打印预览】两个选项,之后的全部选择默认,单击finish,出现一个“NewProject
2、Information”窗口,单击【ok】。一个简单的工程框架就建好了。这是基于MFCAppWizard自动生成的应用程序,如果我们自己还没有编译任何代码,现在就按下F7键编译程序,接着按Ctr+F5键运行程序,可以看到出现一个完整的带有标题栏、菜单栏的可调边框的应用程序。2、现在我们正式开始在新建工程Showpicture中进行编程实现bmp位图的打开和显示。点击左边框中的【ResourceView】框找到【Menu】点开,双击Menu下的图标,在右面的显示框中创建两个菜单:打开,显示原图。分别双击这两个菜单修改属性:打
3、开ID:ID_FILE_OPEN显示原图ID:IDM_YUANTU3、给这两个菜单建立类向导。在右边的窗口中右击“打开”,选择“建立类向导”,然后在打开的对话框中按下图1操作,“Classname”选择“CShowpictureDoc”→”ObjectIDs”中选择“ID_FILE_OPEN”→“Message”中选择“COMMAND”,点击“AddFunction”键就会在“Memberfunctions”中如下显示:然后点击“EditCode”,在自动生成的OnFileOpen函数中编写代码:voidCShowpict
4、ureDoc::OnFileOpen(){//TODO:AddyourcommandhandlercodehereCFileDialogfileDlg(TRUE);fileDlg.m_ofn.lpstrTitle="图片打开对话框";fileDlg.m_ofn.lpstrFilter="BMPFiles(*.bmp) *.bmp ";if(IDOK==fileDlg.DoModal())filename.Format("%s",fileDlg.GetPathName());CDib.LoadFile(filenam
5、e);}同理,操作“显示原图”,如下图2显示:注意这次的“Classname”选择“CShowpictureView”。点击“EditCode”,在自动生成的“OnYuantu”函数中编写代码:voidCShowpictureView::OnYuantu(){//TODO:AddyourcommandhandlercodehereCShowpictureDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);filename=pDoc->filename;state1=1;Invalidate(
6、);}4、创建一个处理位图的类CDib,且,CDib类是由CObject类派生出来的。点击工程菜单栏中的插入【insert】→【insertclass】→类类型选“GenericClass”,→类名称填“CDib”→【ok】。可以看见工程窗口的ClassView中多了一个CDib类;点开CDib类的头文件,输入以下代码,注意变量可以直接复制,声明的函数最好不要直接复制(在CDib类右击选择“Addmemberfunction”,输入函数类型和函数名)。#include"windowsx.h"classCDib:public
7、CObject{public:RGBQUAD*m_pRGB;BYTE*m_pData;UINTm_numberOfColors;BOOLm_valid;BITMAPFILEHEADERbitmapFileHeader;BITMAPINFOHEADER*m_pBitmapInfoHeader;BITMAPINFO*m_pBitmapInfo;BYTE*pDib;DWORDsize;charm_fileName[256];public:voidLoadFile(constchar*dibFileName);DWORDGetSi
8、ze();UINTGetWidth();UINTGetHeight();UINTGetNumberOfColors();CDib();virtual~CDib();};5、对CDib类中的函数定义,找到Dib.cpp输入代码:CDib::CDib(){size=0;}CDib::~CDib(){Glob
此文档下载收益归作者所有