我正在尝试使用一些系统图标,例如SIID_DOCNOASSOC
并SIID_FOLDER
绘制它们。
我的问题是,虽然我的代码在 Windows 7 中按预期工作,但在 Windows 10 上,检索到的图像缺少它们的掩码。我不知道为什么(PICONINFO.hbmMask
我可以检索的字段GetIconInfo
是非空的,表明确实有一个掩码)。
我的代码是用 Xojo 编写的,它使用 VB 的方言,但这并不重要,因为我让它在 Win 7 中工作,我认为:
dim info as SHSTOCKICONINFO
info.cbSize = SHSTOCKICONINFO.Size
SHGetStockIconInfo (SIID_DOCNOASSOC, SHGSI_ICON, info)
dim iconHandle as Integer = info.hIcon
dim destDC as Integer = ... // intialized outside
DrawIconEx (destDC, 0, 0, iconHandle, 0, 0, 0, 0, DI_MASK)
上面的代码获取一个普通文件的图标,然后绘制它的掩码。虽然在 Win 7 上掩码是正确的,但在 Win 10 上整个图标区域的掩码都是黑色的。
为什么会这样?