第一种方法: 使用Bitmap类
Bitmap类可以从HICON和HBITMAP创建, 它提供的方法有:
Bitmap::FromHBITMAP,
Bitmap::FromHICON,
Bitmap::FromBITMAPINFO,
Bitmap::FromResource,
Bitmap::FromStream,
Bitmap::GetHBITMAP,
Bitmap::GetHICON
由以上这些方法就可以实现HICON与HBITMAP转换
第二种方法:
1) HICON转HBITMAP
利用GetIconInfo函数获取ICONINFO信息, 再将其复制到位图当中去, 代码如下:
还有一种方法就是先创建一个兼容位图, 然后通过API函数::DrawIcon()复制上去, CopyImage函数可以用来替换创建兼容DC以后的那些骤了
2) HBITMAP转HICON
由HICON转HBITMAP可以看出, ICONINFO中的hbmColor就是一个HBITMAP类型,那我们是不是可以自己构造一个ICONINFO结构体, 然后通过CreateIconIndirect来创建一个ICON呢?