根据微软支持页面MS KB entry的说明,
当前,我必须使用所述的 API 调用 (请参见) 创建 TBitmap 的完整副本,以使
CreateIconIndirect
存在一个怪癖,它只能识别使用BITMAPV5HEADER
(以及BGRA通道布局)作为参数创建的HBITMAP
。
然而,当引用其Handle
时,(PixelFormat = pf32bit) and (AlphaFormat = afDefined)
(在其他情况下作为 alpha 混合处理)的 TBitmap
实例并不被识别为有效的 alpha 混合位图,不能用于创建图标或光标。当前,我必须使用所述的 API 调用 (请参见) 创建 TBitmap 的完整副本,以使
CreateIconIndirect
接受 alpha 混合的位图句柄。如何克服这种笨拙?
Graphics.GetDIB
进行检查。 - David Heffernan