Menü-Message in eigene Klasse weiterleiten



  • Hallo!

    Wenn ich mit dem Klassenassistent eine ON_COMMAND-
    Nachrichtenbehandlungsmethode für einen Menüpunkt
    einfüge, dann wird die Nachricht an das Mainframe
    oder das aktive Document problemlos weitergeleitet,
    nicht jedoch an eine andere Klasse.
    Woher sollte das Programm auch wissen, an welche
    Instanz der Klasse die Nachricht weitergeleitet
    werden soll... (unabhängig davon, dass es genau
    eine gibt)
    Wie kann ich die Nachricht direkt in diese Instanz
    weiterleiten, ohne für jeden Menüpunkt erst die
    Nachrichtenbehandlung in CMainFrame durchführen zu
    müssen - auf die Dauer wird diese sonst so unüber-
    sichtlich.

    Alex



  • Ist es denn nötig, sie direkt als Nachricht weiterzuleiten?
    Ich weis ja nicht, was diese ominöse Klasse macht, aber evtl. kannst du dir auch in deinem Command-Handler nen Zeiger oder ne Referenz auf die Klassen holen und dann dort die entsprechende Methode ausführen lassen



  • So hab ich es bisher ja gemacht, aber da dieser Menüpunkt
    eigentlich eben nur diese Klasse betrifft, wollte ich es
    auslagern.

    Alex



  • Die Frage ist, ist das gescheit. Du solltest deine Oberfläche soweit es geht strikt von deinen Daten und deinem eigentlichen Algorithmus trennen.

    Einfaches Bsp: du hast nen Programm mit einer KLasse zum Zeichnen von Vierecken. Nun hast du einen Menupunkt "erstelle neues Viereck" oder sowas in der Art.
    Dieser Menupunkt betrifft dann ja(mal GROB vereinfach^^) auch nur deine Klasse CVierecksFeld.
    Würdest du jetzt in deine Klasse CVierecksFeld deshalb die Nachricht abfangen wollen? Oder würdest du die Klasse nur benutzen? 🙂

    Ich kenne deine Struktur net und was dahinter steht. Musst du halt selbst mal schauen. Aber man sollte nicht aus Bequemlichkeit die Sachen vermischen. Das rächt sich oft hintenraus.



  • Hallo!
    Mit den Daten hat das eigentlich nichts direkt zu tun.
    Es geht eher um die Ansteuerung von Messgeräten.
    In dem Fall zum Beispiel ein Monochromator.
    Die Klasse CMonochromator soll sozusagen für sich selbst
    verantwortlich sein (Auswählen des aktiven Gerätes,
    Ansteuerung, ...)
    Also aus meiner Sicht ähnlich dem Konzept, einen Menüaufruf
    statt dem Mainframe dem aktiven Dokument zuzuweisen.

    Alex


Anmelden zum Antworten