Menü-Einträge löschen

mgheinz1001

Grünschnabel
Hallo,

ich habe ein Problem mit meinem Menü:

bei meinem Programm handelt es sich um eine MDI-Anwendung. Der MainFrame besitzt ein Menü, aus welchem ich zur Laufzeit Menüeinträge löschen möchte. Leider bekomme ich das nicht hin. Mein bisheriger Ansatz sieht wie folgt aus:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...

CMenu *menu = GetMenu()
menu->DeleteMenu(0,MF_BYPOSITION);
}

Es gibt keine Fehlermeldung und keinen Absturz - alles läuft wie gehabt, das Menü bleibt also unverändert.

Ich bin für jede Hilfe sehr dankbar!
 
Hallo!

Danke für deine Antwort - jetzt wird tatsächlich was gelöscht. Allerdings musste ich feststellen, dass die Funktion nicht das tut, was ich eigentlich dachte: mit ' menu->DeleteMenu(0,MF_BYPOSITION); ' wird das gesamte erste Menü gelöscht (bspw. 'Datei' mit all seinen Unterpunkten). Ich möchte allerdings ganz gezielt einzelne Einträge aus verschiedenen Menüs löschen. Ein weiteres Problem ist (möglicherweise), dass einige der zu löschenden Einträge keine IDs besitzen, da es sich um Popup-Items handelt (, die dann zusammen mit ihren Unterpunkten gelöscht werden sollen);
 
Hallo,
Code:
	CFrameWnd* const pMainWnd = (CFrameWnd*)AfxGetMainWnd();
	pMainWnd->GetMenu()->GetSubMenu(0)->DeleteMenu(0,MF_BYPOSITION);
	pMainWnd->DrawMenuBar();

damit hast du im ersten Menu den ersten Eintrag gelöscht

Grüße
R.
 
Zurück