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