首 页文章中心下载中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:开源盛世-源代码下载网 -> 文章中心 -> VC++专区 -> 文章内容 退出登录 用户管理
栏目导航
· VC++专区 · V B 专区
· GIS 专区 · PDA 专区
· 其他编程 · 网站开发类
· 数据库类 · 软件应用
· 网络安全 · 论文专区
· 综合资讯
热门文章
· Tab Control控件使用...
· 学生档案管理系统
· [图文] 排列组合公式
· UTF-8与GB2312之间的...
· DirectShow下载安装...
· Virtual PC 在PAE模...
· Windows2000终端服务...
· MapInfo上的GIS系统...
· Mapbasic参考手册索...
· MapX应用开发中文讲...
相关文章
瞧瞧这个将CBitmap写到Bmp文件里的函数
作者:佚名  来源:vscodes.com整理  发布时间:2005-12-16 13:51:02  发布人:Polaris

减小字体 增大字体

首先,这个函数只能针对24色的bitmap.

void CAppDlg::WriteBmp(CBitmap *PBitmap)
{
 BITMAPINFO *m_pBMI;
 BYTE *m_pDIBData;
 BITMAPFILEHEADER bfh;
 BITMAPINFOHEADER bi;
 BITMAP BM;
 PBitmap->GetObject(sizeof(BM),&BM);
 CClientDC dc(this);
 bi.biSize  = sizeof(BITMAPINFOHEADER);
 bi.biWidth  = BM.bmWidth;
 bi.biHeight   = BM.bmHeight;
 bi.biPlanes   = 1;
 bi.biBitCount  = 24;
 bi.biCompression = 0;
 bi.biSizeImage  = 0;
 bi.biXPelsPerMeter = 0;
 bi.biYPelsPerMeter = 0;
 bi.biClrUsed  = 0;
 bi.biClrImportant = 0;
   
 bfh.bfType=0x4d42;
 bfh.bfOffBits=sizeof(bfh)+sizeof(BITMAPINFOHEADER);
 bfh.bfSize=bfh.bfOffBits+BM.bmWidth*BM.bmHeight*3;
 bfh.bfReserved1=0;
 bfh.bfReserved2=0;
 
 m_pBMI=(BITMAPINFO*)new char[sizeof(BITMAPINFO)];
    m_pDIBData=(BYTE*)new char[bfh.bfSize-bfh.bfOffBits];
 
 memcpy(m_pBMI,&bi,sizeof(BITMAPINFOHEADER));
 GetDIBits(dc.GetSafeHdc(), (HBITMAP)PBitmap->GetSafeHandle(), 0l, (DWORD)bi.biHeight,
  (LPVOID)m_pDIBData,(LPBITMAPINFO)m_pBMI, (DWORD)DIB_RGB_COLORS);
  CFile file;
 if(!file.Open(m_FileName,CFile::modeCreate|CFile::modeWrite))
 {
  MessageBox("error!");
  return;
 }
 file.Write(&bfh,sizeof(bfh));
 file.Write(m_pBMI,sizeof(BITMAPINFOHEADER));
 file.Write(m_pDIBData,BM.bmWidth*BM.bmHeight*3);
 file.Close();
 delete m_pBMI;
 delete m_pDIBData;


}

其实横简单吧!在本站的GetPicture软件中有源代码.


End of《瞧瞧这个将CBitmap写到Bmp文件里的函数》

[] [返回上一页] [打 印] [收 藏]
 
∷相关“瞧瞧这个将CBitmap写到Bmp文件里的函数”文章评论∷
(评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 网站目录 鄂ICP备06007162
开源盛世 版权所有Copyright © 2003-2005 VSCodes.Com. All Rights Reserved.