Menü im SDI



  • Hallo, habe ein SDI Programm mit VC6 erstellt. Bei den Erweiterungen habe ich ein Menüpunkt hinzugefügt und nun würde ich den gerne über eine "Menü" Variable steuern (d.h. aktivieren /deaktivieren), genau dann wann ich ihn aktiviert/deaktiviert haben möchte. Geht das? Wenn ja, wie stelle ich mich am dümmsten an?

    Vielen Dank schon jetzt für die Hilfe!
    😉



  • Dazu nimmt man keine Variable sondern behandelt die entsprechende UpdateUI Nachricht. Guck doch mal in den Assistenten.



  • ja, die Nachricht habe ich gefunden - ich möchte aber unabhängig von den Menüaufrufen auch das Erscheinungsbild des Menüs ändern. Also wenn bestimmte zustände sind, dann enable, wenn andere Zustände vorhanden, dann disabled.
    Über den Zeiger kann ich ja daruaf zugreifen. Nur den habe ich ja sonst nicht zur Verfügung? Gibt es da noch eine Möglichkeit?



  • Man müsste eigendlich auch über CWnd::GetMenu auf das Menü zugreifen können.
    Allerdings solltest du die UpdateUI-Nachrichten verwenden.



  • UpdateUI hat einige Vorteile gegenüber einer Behandlung wie du sie vorzuhaben scheinst.

    Die Nachricht kommt dann, wenn ein Menü aufgeklappt wird, damit stimmt der Zustand immer.
    Die Nachricht gilt auch für die Toolbar. (Dann klappt meine Theorie mit dem Zeitpunkt nicht, aber das hab ich noch nicht beduggen können.) Dafür muss der Button in der Toolbar die Selbe ID haben wie der Menüpunkt.
    Es ist die übliche Vorgehensweise. Wenn man als Fremder in einem Programm die De-/Aktivierung des Menüs sucht, sucht man nach den UpdateUI Funktionen.
    Du bekommst eine Variable geliefert, mit der du ALLES machen kannst, was das Herz begehrt um das Aussehen des Menüs zu ändern.

    Also, jetzt deine Gründe, warum du das nicht willst. Sturkopf? Aufgabenstellung?



  • Ich habe es heute mal Versucht - hatte sonst noch keine Zeit dazu!
    Bin überrascht! Es hat alles auf Anhieb geklappt - habe mir dann nur in eine BOOL Variable gemerkt ob ein Menüpunkt aktiviert werden soll oder nicht und dann mit 'nem If Vergleich abgecheckt.
    Danke für eure Hilfe - hätte mich nie dran versucht 😃
    kein Sturkopf - eher Angsthase?
    Nee, nochmal danke für die Hilfe - hab viel gelernt!

    Viele Grüße

    sachse98



  • Angsthase ist lustig. 🤡

    Aber wenn du dich mal wieder nicht traust:
    Sicherheitskopie machen oder einfach schnell packen.
    Und dann kannst du es ruhig "kaputt machen", du hast ja die alte Version.


Anmelden zum Antworten