Menü - Menueinträge verändern
- 
					
					
					
					
 Wie kann man ein MenuItem deaktivieren bzw. wieder aktivieren? 
 
- 
					
					
					
					
 EnableMenuItem() 
 
- 
					
					
					
					
 Ja klar. Aber wo bekomme ich die 1. Variable her? BOOL EnableMenuItem(HMENU hmenu, UINT uIDEnableItem, UINT uEnable)Mein Beispiel: EnableMenuItem(???,ID_DATEI_SPEICHERN,MF_ENABLED);[ Dieser Beitrag wurde am 03.03.2002 um 14:31 Uhr von hronny editiert. ] 
 
- 
					
					
					
					
 so zb ... CMenu MainMenu, *pSubMenu; MainMenu.LoadMenu(IDR_MENU1); pSubMenu=MainMenu.GetSubMenu(1); pSubMenu->EnableMenuItem(0,MF_BYPOSITION | MF_ENABLED); SetMenu(&MainMenu);
 
- 
					
					
					
					
 Ich raff das nich! images/smiles/icon_confused.gif Den Code in die Menuroutine Laden integriert, Absturz! void CSportyDlg::OnMenu_DateiLaden() { CMenu MainMenu, *pSubMenu; MainMenu.LoadMenu(IDR_Hauptmenu); pSubMenu=MainMenu.GetSubMenu(0); pSubMenu->EnableMenuItem(0, MF_ENABLED); SetMenu(&MainMenu); }+----------+----+ +------------------+-------+ |Datei |? | |IDR_Hauptmenu | | +----------+----+ +------------------+-------+ |Neu |Info| |ID_DATEI_Neu |ID_Info| |Laden +----+ |ID_DATEI_LADEN +-------+ |Speichern | |ID_DATEI_SPEICHERN| +----------+ +------------------+ |Ende | |ID_ENDE | +----------+ +------------------+[ Dieser Beitrag wurde am 03.03.2002 um 22:01 Uhr von hronny editiert. ] 
 
- 
					
					
					
					
 dann probiers mal so: void CSportyDlg::OnMenu_DateiLaden() { CMenu MainMenu, *pSubMenu; MainMenu = GetMenu(); pSubMenu=MainMenu.GetSubMenu(0); pSubMenu->EnableMenuItem(0, MF_ENABLED); SetMenu(&MainMenu); }
 
- 
					
					
					
					
 Du hast vergessen die Detach funktion aufzurufen. Devil 
 
- 
					
					
					
					
 Forlgende Fehlermeldung mit Deinem Code: error C2582: 'CMenu' : 'Operator =' ist nicht verfuegbarFehler bezieht sich auf [code]MainMenu=GetMenu();[/code] denn bei GetMenu() muß ein Pointer vorne sein. Also pSubMenu: void CSportyDlg::OnMenu_DateiLaden() { CMenu MainMenu, *pSubMenu, *pSub2Menu; pSubMenu=GetMenu(); pSub2Menu=MainMenu.GetSubMenu(0); pSub2Menu->EnableMenuItem(1, MF_ENABLED); //Detach(); SetMenu(&MainMenu); }Trotzdem Absturz!! images/smiles/icon_eek.gif [ Dieser Beitrag wurde am 04.03.2002 um 22:20 Uhr von hronny editiert. ] [ Dieser Beitrag wurde am 04.03.2002 um 22:21 Uhr von hronny editiert. ] 
 
- 
					
					
					
					
 void CSportyDlg::OnMenu_DateiLaden() { CMenu *MainMenu, *pSubMenu; MainMenu = GetMenu(); pSubMenu=MainMenu->GetSubMenu(0); pSubMenu->EnableMenuItem(0, MF_ENABLED); SetMenu(MainMenu); }gehts so? 
 
- 
					
					
					
					
 Geht jetzt!!! Aber bei [code]pSubMenu->EnableMenuItem(0,MF_ENABLED);[/code] muß die ID aus der Ressource gesetzt werden, dann funzt endlich! void CSportyDlg::OnMenu_DateiLaden() { CMenu *MainMenu, *pSubMenu; MainMenu = GetMenu(); pSubMenu=MainMenu->GetSubMenu(0); pSubMenu->EnableMenuItem(ID_DATEI_SPEICHERN, MF_ENABLED); SetMenu(MainMenu); }->Wäre was für die FAQ! 
 
- 
					
					
					
					
 ok, mach mers auch in die FAQ, als alternative zu devils beitrag für dynamische menüs ...