请教怎么把一个HICON图标与怎么用GDI+的Graphics对象绘制

请问如何把一个HICON图标与如何用GDI+的Graphics对象绘制?
我得到了一个HICON句柄,试过用Bitmap类的构造函数Bitmap(HICON   hIcon)来创建一个Bitmap对象,然后用Graphics的DrawImage画图,但是图标变成不透明了(烦!),有什么办法可以在Graphics上绘出带透明的图标,谢谢大侠们,我实在找不到办法了。

------解决方案--------------------
那好像牵涉到像素混合啊,不是你所想的那么简单,你必须先将bitmap要覆盖的那一片土地(rect)取出来保存,然后判断色深,然后混合,在draw出来,这和游戏里的alpha混合Blit很像.
伪玛:
RGB16bit 565色深
pixel_high=pixel&(1111100000011111)b//取高位
pixel_mid=pixel&(0000011111100000)b//取中位
pixel_low=pixel&(0000000000011111)b//取低位
pixel_rect类似
pixeled_high=pixel_high*alpha+pixel_rect_high(1-alpha)
pixeled_mid=pixel_mid*alpha+pixel_mid_high(1-alpha)
pixeled_low=pixel_low*alpha+pixel_low_high(1-alpha)
最后将pixeled的土draw上去就可以了
alpha是一个参数在1,0之间,设定大小可以改变透明度。
还有更优的算法,我记不住了,可以去网上查
这个算法我是从书上记下来的,还没用到实际上面去,有错就别怪我了
但是要想获得动态透明效果,不混合像素那是一定不行的!!
------解决方案--------------------
任何图形图像只有转换成数据流才有效的,icon和位图在最终显示的时候是没有差别的,只是倒入的方法,大小,解压算法(bitmap好像没有)什么的不同,不知我说的对不对,新手,不敢说得太绝对了。