2008-11-05 50 views
1

我一直在研究如何讓菜單項以粗體顯示 - 而不必自己繪製菜單 - 並在Google搜索後發現MFS_DEFAULT菜單項狀態。該MSDN documentation提到以粗體顯示的多個菜單項

MFS_DEFAULT
指定菜單 項是默認的。菜單 只包含一個默認菜單項, 以粗體顯示。

我嘗試它出現這違背了文檔,好像我能夠使用此標誌顯示多個(或可能是全部!)菜單中的粗體項目。有沒有人有這方面的經驗,即如果有多個粗體菜單項的缺陷?對於我想要達到的目標而言,它確實感覺有些ha and,我對未知的副作用(即在單個菜單中有多個「默認」菜單項)感到有點擔心。

編輯:我還應該補充說,this article聲稱MFS_DEFAULT標誌什麼也不做,只是以粗體顯示菜單項;仍然,我有點小心違反'官方'文檔...

EDIT2:這樣做的目的是告訴用戶,問題的菜單項(即那個粗體)也可以通過雙擊有問題的控件來調用(該菜單項是上下文菜單的一部分)。當我想到這個問題時,我並沒有考慮這樣一個事實 - 通常 - 只有一個命令可以與雙擊事件(d'oh!)相關聯。因此我已經接受了zaphod的回答(它不直接回答這個問題,但它確實解決了我的問題)

回答

4

你想達到什麼目的?

我懷疑,使用MFS_DEFAULT的最大目的不是用於其目的之外的目的,就是您違反了Microsoft正在試圖公佈關於粗體菜單項意味着什麼的視覺約定,以及用戶(或者屏幕閱讀器等輔助程序)在遇到問題時應該做出反應。

如果你所要做的只是把用戶的注意力放在一些特別感興趣的菜單項上 - 好吧,這看起來有點奇怪,但它看起來還很無辜,我會很驚訝如果它導致你在路上遇到巨大的問題。當然,任何事情都可以!不過,我想知道你到底在幹什麼。

如果您試圖通過粗體顯示和解開菜單項暴露部分程序狀態 - 這對我來說似乎有點意外,但我不願意在聽取具體內容之前通過判斷。

如果您還有其他目標 - 比如您可能認爲菜單的默認字體很醜,並且當所有內容都粗體顯示時您更喜歡它 - 那麼您發現的方法可能是合適的,但也可能存在如果你願意,也可以更好地獲得你想要的東西,我們可以更詳細地討論(也許在另外的問題中)。我懷疑是這樣,但誰知道?