我目前有一些工具欄按鈕,側面有一個小箭頭(TBSTYLE_EX_DRAWDDARROWS
),點擊後會導致彈出的上下文菜單顯示在按鈕下方。這是通過構建自定義彈出式菜單並調用TrackPopupMenu
來完成的。「粘滯」的MFC彈出菜單
客戶端現在希望能夠從菜單中選擇多個選項關閉之前,使多個選項,可以無需重新打開菜單,並等待一箇中間每一個變化之間的重繪進行修改。
例如:
- 用戶點擊下拉按鈕
- 出現下拉菜單(模態,無限期用戶動作等待)
- 用戶點擊一些項(例如,切換標記)
- 定時器(例如,500ms)開始
- 如果計時器到期,則關閉菜單並執行所有選定的動作。
- 用戶點擊其他項目之前計時器到期後,回到4
我能想出是通過調用TrackPopupMenu
多次以重新顯示菜單最好的。這使菜單「閃爍」,當你選擇一個項目,並可能需要我啓動一個線程,以執行超時,我寧願避免。
我也不完全賣這個想法,意圖是合理的。至少在這個應用程序中,不得不重新打開每個更改的菜單都很乏味。我考慮過使用除菜單之外的東西,這是一個選項,但菜單提供了相當多的功能,例如自動調整大小以適應其內容,將其自身放置在屏幕上以確保其可見,顯示覆選框/單選按鈕圖標或自定義圖標等,我將不得不手動構建。 – 2009-10-19 22:58:00