1、1. 新建应用程序运行Visual C+ 6.0;点击菜单“文件新建”,打开“新建”对话框;点击“工程”选项页;选中“MFC AppWizard(exe)”;在“位置”编辑框中确定适当的存储路径;在“工程名称”编辑框中输入DIP?,其中?为自己姓名的拼音缩写,如DIPLJJ;按“确定”按钮,进入向导过程。2. 应用程序向导步骤1:选择“单文档”,其它不变, 步骤2:不作改变,点击“下一步”;步骤3:不作改变, 步骤4:取消“打印和打印预览”;按下“高级”按钮,在“文件扩展名”编辑框中输入bmp,关闭;点击“下一步”;步骤5:选择“作为静态的DLL”,点击“下一步”;步骤6:将CDIPLJJVi
2、ew类的基类选择为CScrollView,其它不变,点击“完成”。(其中LJJ应换为自己姓名的拼音缩写,后同)点击“确定”。3. 应用程序框架及基本操作在完成向导过程后,将建立一套应用程序框架,该框架中包含如下几个类: CDIPLJJApp 应用程序类 CMainFrame 主窗口框架类 CDIPLJJDoc 文档类 CDIPLJJView 视图类 CAboutDlg 关于对话框类每个类都有一个类定义文件.h,和类实现文件.cpp。在VC主界面左侧的组合窗口中,切换到“ClassViev”选项页,点击展开“DIPLJJ Classes”,将列出该应用程序的所有类。双击某个类,将在编辑窗口中打开
3、该类的.h文件;点击展开类,双击类中已实现的某个成员函数,将打开该类的.cpp文件。4. 修改“关于”对话框在VC主界面左侧的组合窗口中,切换到“ResourceView”选项页,展开“DIPLJJ resources”,展开“Dialog”,双击“IDD_ABOUTBOX”,对“关于”对话框进行编辑,在“版权所有 (C) 2009”之前加上自己的学号和姓名,然后保存。5. 组建和运行程序点击菜单“组建组建”,或点击相应的工具条按钮,生成可执行程序(exe);点击菜单“组建执行”,或点击相应的工具条按钮,运行该程序,在程序中打开“关于”对话框。三、建立图像类1. 建立类文件点击菜单“插入类”,
4、打开“新建类”对话框;在类的类型中选中“Generic Class”;在名称中输入“LImage”;确定。建立起LImage类的头文件LImage.h和源文件LImage.cpp。2. 编写类定义代码打开LImage.h文件,将LImage类的定义代码添加到该头文件中(灰底部分为文件中已有的代码,后同):class LImage public: LImage(); virtual LImage(); BOOL Create(int a_Width,int a_Height); void Destroy(); BOOL IsValid(); BOOL CopyFrom(LImage *a_pIm
5、g); BOOL LoadBmpFile(CString a_Filename); BOOL SaveBitmap(CString a_Filename); /属性 int m_Width,m_Height; /图像的宽度,高度,以象素计 int m_WidthBytes; /每行象素所占字节数 int m_ImageSize; /象素数据总字节数 BYTE* m_pBits; /图像数据块 CDC m_DC; /显示 BOOL BitBlt(HDC a_DestDC,int a_DestX,int a_DestY,int a_Width,int a_Height, int a_SrcX,in
6、t a_SrcY,DWORD a_Rop=SRCCOPY); BOOL StretchBlt(HDC a_DestDC,int a_DestX,int a_DestY,int a_DestWidth, int a_DestHeight,int a_SrcX,int a_SrcY,int a_SrcWidth,int a_SrcHeight, DWORD a_Rop=SRCCOPY); int FitBlt(HDC a_DestDC,int a_DestX,int a_DestY,int a_DestWidth,int a_DestHeight, int a_SrcX,int a_SrcY,in
7、t a_SrcWidth,int a_SrcHeight,DWORD a_Rop=SRCCOPY);protected: HBITMAP m_hBitmap; HDC m_hMemDC;private: HBITMAP m_hOldBitmap;#endif / !defined(AFX_LIMAGE_H_4BFB411F_B5D3_4A26_8188_919613CED4A8_INCLUDED_)3. 编写类实现代码打开LImage.cpp文件,将LImage类的实现代码添加到该文件中。 (1) 构造及析构函数LImage:LImage() m_hBitmap = NULL; m_pBits
8、 = NULL; m_hMemDC = NULL;LImage() Destroy(); (2) 图像空间创建函数 按给定的图像尺寸分配图像的内存空间,并定义相关参数。BOOL LImage:Create(int a_Width,int a_Height) if( a_Width=0 | a_Height=0 ) return FALSE; if( a_Width0 ) a_Width = -a_Width; if( a_HeightIsValid() ) if( !Create(a_pImg-m_Width, a_pImg-m_Height) ) memcpy( (void*)m_pBits
9、, (void*)a_pImg-m_pBits, m_WidthBytes*m_Height ); (5) 图像显示函数 直接显示,缩放显示,按适合窗口的尺寸显示图像。BitBlt(HDC a_DestDC,int a_DestX,int a_DestY,int a_Width,int a_Height, int a_SrcX,int a_SrcY,DWORD a_Rop) return :BitBlt(a_DestDC, a_DestX, a_DestY, a_Width, a_Height, m_hMemDC, a_SrcX, a_SrcY, a_Rop); StretchBlt(HDC a_DestDC,int a_DestX,int a_DestY,int a_DestWidth, int a_DestHeight, int a_SrcX,i
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1