簡體   English   中英

如何填充MFC C ++應用程序中的Windows菜單

[英]How is the Windows menu in a MFC C++ app populated

Windows菜單是MFC下提供給Document / View應用程序的標准菜單之一。 它提供了平鋪和層疊窗口之類的功能,並在菜單末尾附加了當前可用視圖的枚舉列表。 問題是,有時候沒有,我想知道為什么。 更具體地說,我想知道如何刷新此列表,因為我想在GUI自動化工具下使用它。 通常列表在那兒,有時候卻不在,有人知道為什么嗎? 我的猜測是CFrameWnd類中有一個函數可以照看這個,但是我似乎找不到它。

編輯:我也正在使用Stingray庫的GUI,這很可能與問題有關。

菜單和窗口標題的更新是通過兩種方法分別處理的。

  • CFrameWnd::OnUpdateFrameMenu(..)僅實現框架菜單,
  • CFrameWnd::OnUpdateFrameTitle(..)僅刷新框架的名稱。

我認為某個地方有錯誤的呼叫順序,並且更新標題要晚於更新菜單。 畢竟,“窗口”菜單中的所有標題有時仍為空字符串。

最簡單的修復方法是使用GetActiveFrame()->ActivateFrame()方法調用。 它將立即刷新實際的框架窗口和擁有的“窗口”菜單。 創建CDocument和CView之后可以使用它。 最好的調用方法是在應用程序(CWin)App類的OnFileNewOnFileOpen重寫方法的末尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM