You are not logged in.

  • Login

1

Wednesday, December 13th 2006, 9:51am

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:


C Quellcode

1
2
3
4
5
6
7
8
define IDC_MyRichEditCtrl 102
 
CRichEditCtrl m_rich;
 
CRect rect( 0,0,0,0);
DWORD dwStyle = ES_AUTOVSCROLL | .... | ....;
 
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

C Quellcode

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


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

C Quellcode

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


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


C Quellcode

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



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

Kann mir jemand mitteilen, woran das liegt?

Vielen Dank und Gruß an alle

Similar threads

Social bookmarks