Ereignis auf dynamisches Steuerelement

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ereignis auf dynamisches Steuerelement

    Hallo zusammen!

    Kann mir jemand erklären, wie ich meinem Projekt eine Ereignisbehandlungsroutine für ein dynamisches Steuerelement hinzufügen kann? Ich habe eine SDI-Anwendung implementiert, die eine abgeleitete Ansicht der Klasse CScrollView besitzt, in der ich ein Steuerlelement vom Typ CRichEditCtrl eingebunden habe. Das RichEdit-Steuerelement erzeuge ich zur Laufzeit wie folgt:


    Quellcode

    1. define IDC_MyRichEditCtrl 102
    2. CRichEditCtrl m_rich;
    3. CRect rect( 0,0,0,0);
    4. DWORD dwStyle = ES_AUTOVSCROLL | .... | ....;
    5. m_rich.Create( dwStyle, rect, this, IDC_MyRichEditCtrl);


    Im Anschluss daran habe ich mir ein temporäres Projekt amgelegt, aus dem ich mir die folgenden Einträge für die Deklaration der MESSAGE_MAP und die der EVETSINK_MAP kopiert habe. Diese habe ich dann wie folgt in meine View eingebunden:

    In die .h-Datei

    Quellcode

    1. //Generierte Message-Map-Funktionen
    2. protected:
    3. //{{AFX_MSG(CMyView)
    4. afx_msg void OnMouseDownRichEditCtrl( short Button, short Shift,
    5. long x, long y);
    6. //}}AFX_MSG
    7. DECLARE_MASSAGE_MPA();


    Analog dazu habe ich in die CPP-Quellcode-Datei folgendes eingefügt:

    Quellcode

    1. BEGIN_EVENTSINK_MAP(CMyView, CScrollView)
    2. //{{ AFX_EVENTSINK_MAP(CMyView)
    3. ON_EVENT( CMyView, IDC_MyRichEditCtrl, -605 /* MouseDown */, OnMouseDownRichTextCtrl, VTS_I2 VTS_I2, VTS_I4, VTS_I4)
    4. //}}AFX_EVENTSINK_MAP
    5. END_EVENTSINK_MAP()


    Anschließend möchte ich dann das Ereignis wie folgt abfangen:


    Quellcode

    1. void CMyView::OnMouseDownRichEditCtrl( short Button, short Shift, long x, long y)
    2. {
    3. TRACE(" MouseDown-Ereignis ");
    4. }



    Aber von wegen Ereignis... Da rührt sich nichts.

    Kann mir jemand mitteilen, woran das liegt?

    Vielen Dank und Gruß an alle