首先,我不是 C++ 开发人员,我主要使用 C# 进行编程。我正在尝试使用 .NET 中的 ContextMenu(是的,我知道 ContextMenuStrip)类,它是我的应用程序中 CMenu 的包装器。
如何在具有适当透明度的菜单项旁边显示图像?
到目前为止,我所做的是在我的菜单项上调用SetMenuItemBitmaps,这是附加的结果:
如您所见,菜单项上有白色背景。这与我想要的非常接近。我怎样才能消除透明度问题?我已在此菜单项上附上了我在下面使用的确切图像:
我知道 SetMenuItemBitmaps 不适用于彩色图像。
选定的和清除的位图应该是单色的。系统使用布尔 AND 运算符将位图与菜单组合,使白色部分变为透明,黑色部分变为菜单项颜色。如果您使用彩色位图,结果可能不理想。
那么这样做的正确(希望是简单的)方法是什么?
编辑
我尝试的另一件事是调用 SetMenuItemInfo,但我不断收到错误 87(无效参数)。
这是我调用 SetMenuItemInfo 之前 MENUITEMINFO 结构的样子:
我在 SetMenuItemInfo 上调用的参数值为:
hMenu - ContextMenu 的句柄?
uItem - 0(第一项索引?)
fByPosition - 真
lpmii - (上面的结构内容)