2014-11-03 90 views
0

整天我試圖解決這個簡單的問題,但沒有任何成功。 我在互聯網上發現了很多提示,但似乎沒有一個適用於我的問題。MFC SDI應用程序,如何更改菜單項的標題?

我的問題很簡單:我想換一個menue項的標題,而運行時

但現在看來,我發現所有的解決方案是非常具體的。

我的要求是這樣的: - 這是一個MFC應用程序(VS2010) - 這是一個SDI應用程序,而不是MDI - 我想換一個主菜單項的標題(如「文件」),不子菜單的一個條目。

由於主輸入項目,菜單項目沒有ID。因此ON_UPDATE_COMMAND_UI的解決方案將無法使用!

我的問題是: - 無論是我試過的代碼,正在生成的斷言或異常 - 或以虛假 的函數調用返回 - 或功能似乎運作良好,但我沒有看到任何結果(字幕仍然沒有變化)

也許我使用了錯誤的功能,或調用函數的地方是錯誤的。 有沒有人可以在我的應用程序前提下工作?

很多,非常感謝!

理查德

+0

修改菜單項使用其索引,幷包括'MF_BYPOSITION'。 – user1793036 2014-11-04 00:15:34

回答

2

的Windows巧妙地隱藏了修改下ModifyMenu神祕名稱的菜單功能。當他們做那樣的事時我討厭它。真的讓我對Linux/Unix有很高的期望,比如shmdtmvwaddchnstr。無論如何,現在下來我的肥皂盒,你會這樣稱呼它:

GetParentFrame()->GetMenu()->ModifyMenuW(1, MF_BYPOSITION, 0, L"New Item"); 
GetParentFrame()->Invalidate(); 
+0

你好,我試過你的代碼。但它失敗了。從哪裏我需要調用這個ModifyMenu()?我在我的CFormView類中的OnInitialUpdate中添加了代碼。但是這個調用導致了一個例外:-( – NBGer 2014-11-07 11:47:24

相關問題