如何将View窗口的图像保存为BMP? 如何将View窗口的图像保存为BMP? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL WriteWindowToDIB( LPTSTR szFile, CWnd *pWnd ){ CBitmap bitmap; CWindowDC dc(pWnd); CDC memDC; CRect rect; memDC.CreateCompatibleDC(&dc); pWnd->GetWindowRect(rect); bitmap.CreateCompatibleBitmap(&dc, rect.Width(),rect.Height() ); CBitmap* pOldBitmap = memDC.SelectObject(&bitmap); memDC.BitBlt(0, 0, rect.Width(),rect.Height(), &dc, 0, 0, SRCCOPY); // Create logical palette if device support a palette CPalette pal; if( dc.GetDeviceCaps(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 ); // Create the palette pal.CreatePalette( pLP ); delete[] pLP; } memDC.SelectObject(pOldBitmap); // Convert the bitmap to a DIB HANDLE hDIB = DDBToDIB( bitmap, BI_RGB, &pal ); if( hDIB == NULL ) return FALSE; // Write it to file WriteDIB( szFile, hDIB ); // Free the memory allocated by DDBToDIB for the DIB GlobalFree( hDIB ); return TRUE;}//http://www.codeguru.com/bitmap/window_to_file.shtml 想问一下,谁知道AfxFrameorView42s这个类, 应该如何使用? 请问VC2003中“转到引用”怎么恢复使用??? 请问一下,我的VC6.0环境打开后没有类视图,是怎么回事? 求教 代理服务器的实现原理? 关于OnPaint()刷新的问题! 新手提问:我在用 Win32 Unicode Release MinDependency 编译时出错 怎样安装vs .net rc3 VC++程序员 兼职实习 西安 获取桌面BITMAP显示不正常 请高手help!如何控制enter键,谢谢 怎样编写基于TELNET的客户端通信程序 怎样缩短猫的登陆时间?
{
CBitmap bitmap;
CWindowDC dc(pWnd);
CDC memDC;
CRect rect; memDC.CreateCompatibleDC(&dc); pWnd->GetWindowRect(rect); bitmap.CreateCompatibleBitmap(&dc, rect.Width(),rect.Height() );
CBitmap* pOldBitmap = memDC.SelectObject(&bitmap);
memDC.BitBlt(0, 0, rect.Width(),rect.Height(), &dc, 0, 0, SRCCOPY); // Create logical palette if device support a palette
CPalette pal;
if( dc.GetDeviceCaps(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 ); // Create the palette
pal.CreatePalette( pLP ); delete[] pLP;
} memDC.SelectObject(pOldBitmap); // Convert the bitmap to a DIB
HANDLE hDIB = DDBToDIB( bitmap, BI_RGB, &pal ); if( hDIB == NULL )
return FALSE; // Write it to file
WriteDIB( szFile, hDIB ); // Free the memory allocated by DDBToDIB for the DIB
GlobalFree( hDIB );
return TRUE;
}//http://www.codeguru.com/bitmap/window_to_file.shtml