首先,我不是C++開發人員,主要使用C#編程。我正在嘗試在.NET中使用ContextMenu(是的,我知道ContextMenuStrip)類,它是我的應用程序中圍繞CMenu的一個包裝。在CMenu的菜單項旁邊顯示正確透明度的位圖的簡單方法
如何在具有適當透明度的菜單項旁邊顯示圖像?
什麼我迄今所做的就是調用我的菜單項SetMenuItemBitmaps,這裏是連接結果:
正如你可以看到有一個白色背景上的菜單項。這只是令人沮喪地接近我想要的。我怎樣才能讓透明度問題消失?我已經把它貼在下面我就用這個菜單項的精確圖像:
我知道SetMenuItemBitmaps並不意味着對彩色圖像。
選定的和清晰的位圖應該是單色的。系統使用布爾AND操作符 將位圖與菜單組合,以使 白色部分變爲透明,黑色部分變爲 菜單項顏色。如果您使用彩色位圖,結果可能是 不合需要的。
那麼這樣做的適當方法(希望是簡單的)是什麼?
編輯
另一件事我試着打電話SetMenuItemInfo,但我不斷收到錯誤87(無效參數)。
這是MENUITEMINFO結構是什麼樣子之前,我打電話SetMenuItemInfo:
而對於我在SetMenuItemInfo調用的參數值是:
HMENU - 的句柄上下文菜單?
uItem - 0(第一項指標?)
fByPosition - 真
lpmii - (上面的結構內容)
我可以看到的結構沒有明顯的錯誤,所以也許檢查'hMenu'是否有效?也許通過調用'GetMenuItemInfo()'來獲得一些簡單的東西(例如'fState')。 –
@JonathanPotter嗯,我能夠得到SetMenuItemInfo的工作,感謝您的方向。唯一的問題是它看起來與上面完全相同(像素化爲白色背景)。 – test
您的位圖32bpp是否帶有預乘alpha? –