rt
解决方案 »
- ActiveSkin 4.3 使用常见问题
- 想要从CWnd类派生出一个类似CEdit的控件,有什么好的思路?
- 关于DLL使用的问题
- 问一个模态对话框的问题
- 菜鸟请教:VC/MFC中能不能调用C#写的DLL,请指点……
- 关于WuLines的线宽问题
- 如何得到标态标签控件在设计时对文本对齐方式
- 请问一个关于设备枚举的问题,谢谢!
- 『请教』一个链接错误
- 我在ATL中创建了一个MTS组件,请问在VC中如何测试
- 这是一个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);