![](/img/trans.png)
[英]Capture windows messages generated by an MFC app in plain C++ dll
[英]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類的OnFileNew
, OnFileOpen
重寫方法的末尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.