文档介绍:IT-Homer 专栏
成功是优点的发挥,失败是缺点的积累! 不为失败找理由,只为成功找
方法……
vc++如何将客户区存为bmp和VC实现自绘图形输出到bmp文件
分类: C/C++/C# 2009-12-12 13:20 561人阅读评论(0) 收藏举报
vc++如何将客户区存为bmp
在view类中添加以下三个函数:
BOOL CTestestView::WriteWindowToDIB(LPTSTR szFile, CWnd *pWnd)
{
       CBitmap bitmap;
       CWindowDC dc(pWnd);
       CDC memDC;
       CRect rect;
       (&dc);
       pWnd->GetWindowRect(rect);
       (&dc,(),());
       CBitmap* pOldBitmap=(&bitmap);
       (0,0,(),(),&dc,0,0,OPY);
       CPalette pal;
       if((RASTERCAPS)&RC_PALETTE)
       {
              UINT nSize=sizeof(LOGPALETTE)+(sizeof(PALETTEENTRY)*256);
              LOGPALETTE* pLP=(LOGPALETTE*)new BYTE[nSize];
              pLP->palVersion=0x300;
              pLP->palNumEntries=GetSystemPaletteEntries(dc,0,255,pLP->palPalEntry);
              (pLP);
              delete[] pLP;
 
       }
       (pOldBitmap);
       HANDLE hDIB=DDBToDIB(bitmap,BI_RGB,&pal);
       if(hDIB==NULL)
              return FALSE;
       WriteDIB(szFile,hDIB);
       GlobalFree(hDIB);
1
return TRUE;
 
}
 
HANDLE CTestestView::DDBToDIB(CBitmap &bitmap, DWORD pression, CPalette *pPal)
{
       BITMAP bm;
       BITMAPINFOHEADER bi;