schorschi Geschrieben 19. Dezember 2005 Geschrieben 19. Dezember 2005 Hallo, Ich möchte unterschiedliche Menueeinträge gestalten. habe auch schon in einigen Beiträge Anhaltspunkte gefunden. Aber es funktioniert nicht so ganz.Die Links welche in früheren Topics stehen und zur Lösung führen sollen sind tot. Benutze VC6.0 folgender Code aus Beispielen funktioniert nicht CMenu* mmenu = GetMenu(); CMenu* submenu = mmenu->GetSubMenu(0); submenu->EnableMenuItem(ID_MENU, MF_BYCOMMAND | MF_ENABLED); Fehlermeldung :GetMenue funktioniert keine 0 Parameter. Ich muß einen HWND Handler übergeben und hier ist mein Problem: Ich weiß nicht wie ich mir den Handler besorge, das ist schon immer mein Probem gewesen was ich noch nie geschnallt habe. im Grunde ist mir klar das ich, um etwas zu steuern was schon da ist, desen Adresse oder irgend etwas brauche was auf dieses,nennen wir es mal Objekt,zeigt. Gibts eine allgemeine Erklärung wie ich mir einen Handler besorge? Für eine ausführliche Erklärung bin ich dankbar. Danke Zitieren
Klotzkopp Geschrieben 20. Dezember 2005 Geschrieben 20. Dezember 2005 Fehlermeldung :GetMenue funktioniert keine 0 Parameter.Das liegt daran, dass dieser Code in einer Memberfunktion einer von CWnd abgeleiteten Klasse stehen muss. Das ist bei dir offenbar nicht der Fall. Du kannst GetMenu auch über einen Zeiger auf eine Instanz einer solchen Klasse aufrufen. Ein HWND brauchst du nur, wenn du die WinAPI-Funktion GetMenu aufrufen willst. Damit wird aber der Rest dieses Codes nicht funktioneren, weil du da kein CMenu* bekommst, sondern ein HMENU. Der übliche Weg, Menübefehle ein- oder auszuschalten, ist aber sowieso ein anderer. In derselben Klasse, die die Menübefehle verarbeitet, kann man auch UPDATE_UI-Handler anlegen, die regeln, ob ein Menübefehl aktiviert ist oder nicht. Wie das geht, hängt von der Version des VS ab. Zitieren
schorschi Geschrieben 20. Dezember 2005 Autor Geschrieben 20. Dezember 2005 Die Sache mit dem UPDATE_UI-Handler hatte ich bereits gefunden und ausprobiert.Funktioniert zum Texte & Hacken setzen, unable legen und alles.In einem Füheren Topic hattest Du erklärt das die Befehle welche unter diesem Handler ausgeführt werden nicht zu umfangreich sein sollten das diese Methode wohl öfter aufgerufen wird.Ich möchte den anderen Weg gehen. Ich würde gerne nachdem ich mir jetzt dem HWND Handler besorgen konnte die Menuestruktur unter "InitInstance()" 1 mal aufrufen.Es funktioniert auch fast alles bis auf den Befehl das ich die Menuepunkte nicht grau bzw. unable legen kann. Der Befehl: m_Menue->EnableMenuItem(32785,MF_GRAYED); Ich meine ich hätte irgenwo mal was gelesen das bei diesem Befehl noch etwas zu beachten ist. So in etwa wie bei Editfelder UpdateData().Kann mich auch täuschen... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.