我知道 XP 很舊,但我只需要知道這里的問題。
我沒有看到提供帶有任何圖示或位圖之類的帶有蒙版的彈出選單的方法,只有位圖。So, if I use a compatible bitmap, it will look transparent when the selection bar is not highlighting it, but when highlighted the entire graphic still shows (with a square button face color around it).
如果我使用帶有 alpha 的 32 位 DIB,透明項只顯示黑色(而 Windows 10 可以很好地處理透明度 - 我認為 Vista 和 Win7 也可以)。
如果我在 DIB 中手動將所有 A 設定為 0,它仍然是黑色的(在 Win10 上,顏色通常顯示為白色的影像 - 我會認為它是透明的)。
無論如何,有沒有辦法向選單提供圖示(因為它有蒙版)或帶蒙版的位圖,以便像 XP 這樣的東西可以自動處理它(沒有所有者繪制)?
有沒有辦法強制加載.ICO檔案為 256 色版本而不是 32 位 RGB/A 版本?我沒有 24 位 RGB 圖形.ICO,所以如果它存在,也許 XP 會選擇它?
我知道 GDI 并非在所有情況下都支持 alpha,但有時確實如此,而且 Windows 版本似乎也很重要。
有人有這方面的背景嗎,可以判斷這是否是 32 位位圖的已知 XP 問題?
uj5u.com熱心網友回復:
在 XP 上,您必須自定義繪制但不是整個東西,只是位圖/圖示。
在 Windows 95/NT4 上,正確執行此操作的唯一方法是自定義繪制整個選單項。在 Vista 之前選單外觀只改變了一次,在 XP 中增加了平面選單,因此自定義繪制一切肯定是可能的。
圍繞Windows 98/2000的能力,設定一些時間MENUITEMINFO.hbmpItem來HBMMENU_CALLBACK加入。使用DrawIconEx或影像串列。
Vista 添加了對 32 位 ARGB 位圖的支持。您不應在此處使用回呼方法,因為這會禁用新的視覺樣式。
也可以看看:
- 主題選單的圖示,完整的 Vista 和 XP 解決方案
- MSJ 酷炫定制抽獎
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/376683.html
