afx_msg Methode einer anderen Klasse übergeben



  • Hi!

    Ich habe folgendes vor:

    BEGIN_MESSAGE_MAP(CKlassenTestUmgebungController, CODController)
        //{{AFX_MSG_MAP(CKlassenTestUmgebungController)
            // NOTE - the ClassWizard will add and remove mapping macros here.
            ON_COMMAND(ID_BUTTON_TEXT,CAddComponents::OnAddText)
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    

    In CAddComponents ist OnAddText so definiert:
    afx_msf void OnAddText();

    Resultierende Meldung:

    z:\Labdes32\Design\Klassen\KlassenTestUmgebung\KlassenTestUmgebungCtlr.cpp(31): error C2440: 'static_cast' : 'void (__thiscall CAddComponents::* )(void)' kann nicht in 'AFX_PMSG' konvertiert werden

    Bevor ich nun 2 Methoden für jede gewünschte Funktion schreibe wollte ich fragen ob es nicht einen weg gibt Methoden fremder Klassen in die MessageMap aufzunehmen. Für mich ist das noch ein Buch mit 7 Siegeln 😞

    thx

    Michael

    Das is irgendwie Käse was ich hier will... Denn welche Instanz soll der da verwenden ?!?! Aber wie würde das gehen wenn OnAddText static wäre ?

    [ Dieser Beitrag wurde am 12.11.2002 um 11:20 Uhr von Knuddlbaer editiert. ]



  • Sind sogar 2 Fehler!

    1. muss der Msg-Handler Member Deiner Klasse sein
    2. CAddComponents::OnAddText ist sicher keine statische Funktion -> ::Operator ist nicht ausserhalb der Klasse erlaubt

    Du musst das ganze schon selber weiterleiten!



  • Besten Dank!


Anmelden zum Antworten