电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

在VC++中如何将绘制的图形存储成位图VIP免费

在VC++中如何将绘制的图形存储成位图_第1页
1/21
在VC++中如何将绘制的图形存储成位图_第2页
2/21
在VC++中如何将绘制的图形存储成位图_第3页
3/21
在 VC++中如何将绘制的图形存储成位图 太匆匆忙 2009-12-16 14:19:04 124.164.196.* 您好CClientDC dc(this);//取得客户区内存 DCCDC THDC;HBITMAP THBM;THDC.CreateCompatibleDC(0);//创建相关场景THBM=(HBITMAP)LoadImage(NULL,"D:\\x.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//载入位图BITMAP bmp;GetObject(THBM,sizeof(bmp),&bmp);//取得位图信息SelectObject(THDC,THBM);//选入位图至内存 DCDeleteObject(THBM);//删除位图BitBlt(dc,0,0,bmp.bmWidth,bmp.bmHeight,THDC,0,0,SRCCOPY);//将临时内存 DC中的位图画到客户区中//首先在 D 盘根目录下放一个标准.bmp 格式的位图 再将这些代码写入一个按钮事件中 点击按键 就会在窗体的左上角看到图形了. calpt 2009-12-26 18:03 :43 116.205 .25 4.* Visual C++ MFC中没有提供一个专门的类来处理 DIB 位图,因此,为了方便地使用位图文件,我们有必要派生一个 CDib 类。类的源代码如下: (1) CDib类的声明// DIB.h:类 CDib 声明头文件# ifndef __DIB_H__# define __DIB_H__#include class CDib{ public: CDib(); ~ CDib(); BOOL Load( const char * ); BOOL Save( const char * ); BOOL Draw( CDC *, int nX = 0, int nY = 0, int nWidth = -1, int nHeight = -1, int mode = SRCCOPY); BOOL SetPalette( CDC * ); private: CPalette m_Palette; unsigned char *m_pDib, *m_pDibBits; DWORD m_dwDibSize; BITMAPINFOHEADER *m_pBIH; RGBQUAD *m_pPalette; int m_nPaletteEntries;};#endif (2) CDib类的实现// DIB.cpp:类 CDib 实现文件#include "stdafx.h"#include "DIB.h"CDib::CDib(){ m_pDib = NULL;}CDib::~ CDib(){ // 如果位图已经被加载,释放内存 if (m_pDib != NULL) delete []m_pDib;} 下面这个函数非常重要,其功能为加载位图,类似于 CBitmap 类的LoadBitmap 函数:BOOL CDib::Load(const char *pszFilename){ CFile cf; // 打开位图文件 if (!cf.Open(pszFilename, CFile::modeRead)) return (FALSE); // 获得位图文件大小,并减去 BITMAPFILEHEADER的长度 DWORD dwDibSize; dwDibSize = cf.GetLength() - sizeof(BITMAPFILEHEADER); // 为 DIB 位图分配内存 unsigned char *pDib;...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

在VC++中如何将绘制的图形存储成位图

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部