我有一個wxMenuBar和一個wxMenu。我可以用Append(...)成功地將菜單附加到菜單欄。我也可以使用刪除(...)成功刪除菜單。重新附加/刪除wxMenuBar +內存問題wxMenu
「menu」示例演示如何添加和刪除菜單:它創建一個菜單,Append-s it,然後刪除它,調用返回指針的delete。要添加另一個,它會創建一個全新的菜單。因此沒有任何重新附着。
但是,我希望能夠追加,刪除,並重新追加任何特定的菜單(或允許的東西等效)。此外,它必須沒有內存泄漏。
我曾嘗試:
//startup
menubar->Append(menu,title);
//later
delete menubar->Remove(1);
產生一個工作程序沒有內存泄漏。奇怪的是,我發現menubar-> Remove返回的指針與最初的Append-ed指針不同。
我想:
//startup
menubar->Append(menu,title);
//later
delete menubar->Remove(1);
menubar->Append(menu,title); //add it back immediately after removing it.
這appbase.cpp產生一個斷言錯誤:1015,東西長約附加菜單兩次。
我真的不知道我在做什麼,如果有人會解釋「正確」的方式來做到這一點,我將不勝感激。
我是刪除的位置,而不是索引(指數=位置 - 1)。將我的代碼更改爲在索引而不是位置上刪除可以修復問題。即,刪除(1)不起作用,但刪除(0)會起作用,如果有一個菜單。你能證實這是正確的嗎? – imallett
索引和位置是同義詞,都從0開始。 –