如何将HICON转为HBITMAP或CBitmap? 分不够再加 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HBITMAP ConvertIconToBitmap(HICON hIcon){ HBITMAP hBmp; BITMAP bmp; CDC bmpDC; CDC iconDC; ICONINFO csII; bRetValue = ::GetIconInfo(hIcon, &csII); if (bRetValue == FALSE) return NULL; bmpDC.Attach(::GetDC(NULL)); iconDC.CreateCompatibleDC(&bmpDC); if (::GetObject(csII.hbmColor, sizeof(BITMAP), &bmp)) { DWORD dwWidth = csII.xHotspot*2; DWORD dwHeight = csII.yHotspot*2; hBmp= ::CreateBitmap(dwWidth, dwHeight, bmp.bmPlanes, bmp.bmBitsPixel, NULL); iconDC.SelectObject(csII.hbmColor); bmpDC.SelectObject(hBmp); bmpDC.BitBlt(0,0,dwWidth,dwHeight,&iconDC,0,0,SRCCOPY); return hBmp;} 作 者: CloudWater (秋云开水) 等 级: 信 誉 值: 89 typedef struct _ICONINFO { // ii BOOL fIcon; DWORD xHotspot; DWORD yHotspot; HBITMAP hbmMask; HBITMAP hbmColor; } ICONINFO; BOOL GetIconInfo( HICON hIcon, // icon handle PICONINFO piconinfo // address of icon structure);I think you have know how to do! HICON hIcon;//你的hiconICONINFO info;::GetIconInfo (hIcon, &info);BITMAP bmp;::GetObject (info.hbmColor, sizeof (BITMAP), (LPVOID) &bmp);HBITMAP hBmp = (HBITMAP) ::CopyImage (info.hbmColor, IMAGE_BITMAP, 0, 0, 0);//释放资源::DeleteObject (hBmp);::DeleteObject (info.hbmColor);::DeleteObject (info.hbmMask); 求一个开源的库,谢谢呀! _TCHAR和char CHttpFile文件下载的奇怪问题 异步选择函数WSAAsyncSelect为什么放在析构函数中? 请问游戏中这种情况怎么避免,想了很久了,一直无解,希望能得到个结果 简单的运算符重载程序,错在哪里? 请问怎样在 汇编中使用COM? 侯俊杰<<深入浅出MFC》第四章学习问题? VC的时间控件精度如何? 大侠门: gethostbyname 能不能访问‘本局网和诸如sina.com.cn等各个网站’以外的机器地址。能的话该如何取。 请问怎么把项目中所需的DLL的目录添加到VC.NET中? 帮忙看看代码,显示窗口不显示但标志为显示状态,高手请进
{
HBITMAP hBmp;
BITMAP bmp;
CDC bmpDC;
CDC iconDC; ICONINFO csII;
bRetValue = ::GetIconInfo(hIcon, &csII);
if (bRetValue == FALSE) return NULL; bmpDC.Attach(::GetDC(NULL));
iconDC.CreateCompatibleDC(&bmpDC); if (::GetObject(csII.hbmColor, sizeof(BITMAP), &bmp))
{
DWORD dwWidth = csII.xHotspot*2;
DWORD dwHeight = csII.yHotspot*2; hBmp= ::CreateBitmap(dwWidth, dwHeight, bmp.bmPlanes,
bmp.bmBitsPixel, NULL);
iconDC.SelectObject(csII.hbmColor);
bmpDC.SelectObject(hBmp);
bmpDC.BitBlt(0,0,dwWidth,dwHeight,&iconDC,0,0,SRCCOPY);
return hBmp;
}
等 级:
信 誉 值: 89
BOOL fIcon;
DWORD xHotspot;
DWORD yHotspot;
HBITMAP hbmMask;
HBITMAP hbmColor;
} ICONINFO;
BOOL GetIconInfo(
HICON hIcon, // icon handle
PICONINFO piconinfo // address of icon structure
);I think you have know how to do!
ICONINFO info;
::GetIconInfo (hIcon, &info);BITMAP bmp;
::GetObject (info.hbmColor, sizeof (BITMAP), (LPVOID) &bmp);HBITMAP hBmp = (HBITMAP) ::CopyImage (info.hbmColor, IMAGE_BITMAP, 0, 0, 0);//释放资源
::DeleteObject (hBmp);
::DeleteObject (info.hbmColor);
::DeleteObject (info.hbmMask);