2010-12-01 49 views
0

我有我添加多個項目的CMenu實例。對於我添加的其中一個項目,我設置了MF_HILITE標誌。的Windows菜單:MF_HILITE標誌不被清除

當我顯示菜單時,相應的項目按要求正確點亮。問題在於它保持高亮度,直到我將鼠標移動並離開。我當時只想要一件東西點亮。看起來,當另一個項目被高度綁定時,Windows不會不亮。

一旦另一個項目獲得高亮度,我怎麼能強制它不亮?我找不到任何鼠標懸停的回調或菜單消息,並且我也找不到任何無效。

+0

我知道我用一種奇怪的方式在菜單:)我使用的是CMenu的爲特定場景的組合框彈出。當它打開時,組合框彈出窗口顯示當前項目,然後只要用戶移動該移動,發光的項目就會改變。 – decasteljau 2010-12-01 17:03:31

回答

0

這似乎並不可能。

無法設置菜單中當前所選項目的內部狀態。使用MF_HILITEHiliteMenuItem不會設置當前選定的項目,它只設置視覺樣式。

作爲解決方法,我使用了彈出式對話框ListBox,它具有我需要的所有功能。

0

您以奇怪的方式使用MF_HILITE。該項目實際上並未突出顯示,它只是繪製而已。如果用戶按下輸入,則「高亮顯示」項不會被選中。

您可能在尋找MF_DEFAULT

+0

我知道我在用奇怪的方式使用菜單:)我正在使用菜單作爲特定場景的組合框彈出菜單。當它打開時,組合框彈出窗口顯示當前項目,然後只要用戶移動該移動,發光的項目就會改變。 – decasteljau 2010-12-01 17:02:40