rt
解决方案 »
- 如何给COM调用上设置等待时间
- vc各版本有什么区别?
- 属性页标签上显示位图
- 开发群,欢迎加入!!!!!!!!!!!!!
- 要开发网管软件,用VC 和 snmp实现,怎么做啊 100分
- ●●int型的值,往SQL语句里怎么写?●●
- 救我啊,一个让我莫名其妙的CAsyncSocket类问题?
- 请用过CArray的大侠看过来,一个细节问题
- 问一个c语言编程问题:怎样用键盘中断一个循环
- 关于API编程问题
- 这是一个WIN32程序,在VC6中编译后出现了如下提示,我是个初学者,不明白是什么意思,如何处理,请赐教!
- 100分问一个简单问题:我程序中用msword9.olb,但机器上装msword8.olb是否有版本冲突,如有如何解决?
http://www.codeguru.com/bitmap/ddb_to_dib.shtml
BITMAP bm;
::GetObject(hBmp, sizeof(BITMAP), &bm);
int nBitCount = 16; // 1, 4, 8, 24, 32 // 保存为几位的图形.
int nPalCol = 1<<nBitCount;// 1.data buffer
DWORD dwD = (bm.bmWidth*nBitCount + 31)/32 * 4 * bm.bmHeight;//bm.bmBitsPixel
BYTE * pData = new BYTE[dwD];// 2.info head buffer.
DWORD dw;
if(nBitCount<=8)
dw = sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD)*nPalCol;
else
dw = sizeof(BITMAPINFOHEADER);
PBITMAPINFO pBmpHead = (PBITMAPINFO)new BYTE[dw];
pBmpHead->bmiHeader.biSize =sizeof(BITMAPINFOHEADER);
pBmpHead->bmiHeader.biWidth =bm.bmWidth;
pBmpHead->bmiHeader.biHeight =bm.bmHeight;
pBmpHead->bmiHeader.biPlanes =1;
pBmpHead->bmiHeader.biBitCount =nBitCount;
pBmpHead->bmiHeader.biCompression =BI_RGB;
pBmpHead->bmiHeader.biSizeImage =0;
pBmpHead->bmiHeader.biXPelsPerMeter =0;
pBmpHead->bmiHeader.biYPelsPerMeter =0;
pBmpHead->bmiHeader.biClrUsed =0;
pBmpHead->bmiHeader.biClrImportant =0;
if(nBitCount<=8)
::GetSystemPaletteEntries(hDC, 0, nPalCol, (LPPALETTEENTRY)pBmpHead->bmiColors);
// 把图形转化为指定格式的DIB格式
GetDIBits(hDC, hBmp, 0, bm.bmHeight, pData, pBmpHead, DIB_RGB_COLORS);