项目中将HICON转为HBITMAP应用比较常见,代码如下:
HBITMAP ConvertIconToBitmap(HICON Icon_Handle)
{
ICONINFO csII;
int bRetValue = ::GetIconInfo(Icon_Handle, &csII);
HDC hDC = GetDC(NULL);
HDC hMemDC = CreateCompatibleDC(hDC);
HBITMAP hMemBmp = CreateCompatibleBitmap(hDC, csII.xHotspot, csII.yHotspot);
HBITMAP hResultBmp = NULL;
HGDIOBJ hOrgBMP = SelectObject(hMemDC, hMemBmp);
DrawIconEx(hMemDC, 0, 0, Icon_Handle, csII.xHotspot, csII.yHotspot, 0, NULL, DI_NORMAL);
hResultBmp = hMemBmp;
hMemBmp = NULL;
SelectObject(hMemDC, hOrgBMP);
DeleteDC(hMemDC);
ReleaseDC(NULL, hDC);
DestroyIcon(Icon_Handle);
return hResultBmp;
}