我有一個帶有各種菜單項的菜單,就像您通常那樣。每個MenuItem(按鈕)都有一個標題,我想在運行時更改該標題。在一個沒有問題的正常按鈕上,我只是撥打GetDlgItem(ID)->SetWindowText(CString);
在運行時更改MenuItem標題
但是我不能在菜單項上這樣做,因爲我無法將ID分配給它們中的任何一個。屬性編輯器中的ID字段實際上顯示「ID無法編輯」。
那麼如何在運行時更改菜單項文本?
編輯:我試過使用CMenu :: ModifyMenu但是我一直不成功。我不知道如何指定按鈕(元素)進行更改。另外,我對CString作爲參數傳遞方式的正確性持懷疑態度。
這是我的(失敗)的嘗試:
CString str = "Foo";
CMenu * pMenu = m_wndToolBar.GetMenu();
pMenu->ModifyMenu(1, MF_BYPOSITION | MF_STRING, 0 /*Don't know what to pass as nIDNewItem */, str);
這(在調用ModifyMenu方法)拋出一個調試斷言錯誤。請不要說我不知道什麼nIDNewItem。
謝謝你的回答。我之前偶然發現了CMenu :: ModifyMenu,但是我沒有成功更改標題。請看我編輯的問題!謝謝! – 2011-06-22 11:27:20