如MSDN ICONINFO中所述 ,根据结构是否定义黑白图标, hbmMask
和hbmColor
的格式不同。
hbmMask
types:HBITMAP
图标位掩码位图。 如果此结构定义了黑白图标,则此位掩码将被格式化,以使上半部分为图标AND位掩码,下半部分为图标XOR位掩码。 在这种情况下, 高度应该是两倍的偶数 。 如果这个结构定义了一个颜色图标,这个掩码只定义了图标的AND位掩码。
这意味着我们需要检测hbmColor
的存在来正确计算图标的高度。
但是,后来我注意到Gdiplus::Bitmap::FromHICON()
,它接受HICON
并将其转换为Gdiplus::Bitmap
。
由于我没有看到有关GDI +中“黑白”图标的任何材料,这种方法是否在内部处理这种情况?
(不幸的是,我没有一个方便的testing图标,我也不知道如何创build一个正确的testing用例。)