我已取得HBITMAP hBitmap.
BITMAP bmXOR;
::GetObject(hBitmap, sizeof(BITMAP), &bmXOR );
但bmXOR.bmBits却为0x00000000.
为什么??
BITMAP bmXOR;
::GetObject(hBitmap, sizeof(BITMAP), &bmXOR );
但bmXOR.bmBits却为0x00000000.
为什么??
解决方案 »
- {求大侠指点}用vs2008的MFC设计一个产品检测界面,但当需要检测项较多时,软件经常出错,不知道是什么原因,求高手讲解
- 为什么打开和关闭无线设备时,设备管理器中的无线设备(Intel(R) Wireless WiFi Link 5300)没有变化?
- 用CDHtmlDialog写程序界面有什么好处和坏处?
- 新手提问:为什么控制字符不见了(读写文本问题)...
- 再次给分求助!安装的时候想在D盘根下建一文件夹。。。。。。
- 如何在两个进程之间共享一个对象?高手赐教!!!!进者有分!
- 怎么读写文件的备注信息
- 怎样将接到的数据"%D5%C5%C8%FD"转换成字符形式"张三"?谢谢
- 服务和DLL之间的内存映射访问问题!!
- 消息队列的问题
- 安装程序时所添加注册的OCX怎样在卸载时不删除和反注册?
- Java 与 .net 哪个有用呢?
你的 hBitmap 是合法的吗? 检查一下返回值是否为0
BITMAP bmAND,bmXOR;
HICON hIcon=ExtractIcon(AfxGetInstanceHandle(),"d:\\word.exe",0);
GetIconInfo(hIcon,&iconinfo);::GetObject( iconinfo.hbmMask, sizeof(BITMAP), &bmAND );
::GetObject( iconinfo.hbmColor, sizeof(BITMAP), &bmXOR );
bmAND.bmWidthBytes为4
bmXOR.bmWidthBytes为128
为什么bmXOR.bmWidthBytes=128???
性命攸关呀!!!
help!!!!
hbmColor Identifies the icon color bitmap.
两个对象,当然是不一样的!!要得到Bitmap数据就用GetDIBits
有人知道吗???
如果我从一个icon中得到hbmMask和hbmColor,
用hbmMask和hbmColor通过CreateIcon 构建一个新的icon,
那么参数“number of XOR planes ”选谁的?bmXOR.bmBitsPixel还是bmAND.bmBitsPixel
HINSTANCE hInstance, // handle to application instance
int nWidth, // icon width
int nHeight, // icon height
BYTE cPlanes, // number of planes in XOR bitmask
BYTE cBitsPixel, // number of bits per pixel in XOR bitmask
CONST BYTE *lpbANDbits, // pointer to AND bitmask array
CONST BYTE *lpbXORbits // pointer to XOR bitmask array
);这个参数还是蛮清楚的. ^_^
ICONINFO iconinfo;
BITMAP bmAND,bmXOR;
HICON hIcon=ExtractIcon(AfxGetInstanceHandle(),"d:\\wrar271c.exe",0);
GetIconInfo(hIcon,&iconinfo);::GetObject( iconinfo.hbmMask, sizeof(BITMAP), &bmAND );
::GetObject( iconinfo.hbmColor, sizeof(BITMAP), &bmXOR );BYTE* lpBitsXOR=NULL;
BYTE* lpBitsAND=NULL;
GetBitmapBits(iconinfo.hbmColor,bmXOR.bmHeight*bmXOR.bmWidthBytes,&lpBitsXOR);
GetBitmapBits(iconinfo.hbmMask,bmAND.bmHeight*bmAND.bmWidthBytes,&lpBitsAND);HICON hIconX = CreateIcon
(AfxGetInstanceHandle( ),// application instance
bmAND.bmWidth, // icon width
bmAND.bmHeight, // icon height
bmXOR.bmPlanes, // number of XOR planes
bmXOR.bmBitsPixel, // number of bits per pixel
lpBitsAND, // AND bitmask
lpBitsXOR); // XOR bitmask
if(hIconX == NULL)
return;
BYTE* lpBitsAND = new BYTE[bmAND.bmHeight*bmAND.bmWidthBytes];
GetBitmapBits(iconinfo.hbmMask,bmAND.bmHeight*bmAND.bmWidthBytes,lpBitsAND);参数也错了,,^_^
睡觉咯,Byebye