Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben
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.

Geschrieben

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...

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...