Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird die Verwendung des Eigenschaftenfensters (in der Klassenansicht) zum Installieren von Ereignishandlern für ActiveX-Steuerelemente in einem ActiveX-Steuerelementcontainer erläutert. Die Ereignishandler werden verwendet, um Benachrichtigungen (vom Steuerelement) bestimmter Ereignisse zu empfangen und als Reaktion eine Aktion auszuführen. Diese Benachrichtigung wird als „Auslösen“ des Ereignisses bezeichnet.
Von Bedeutung
ActiveX ist eine ältere Technologie, die nicht für die neue Entwicklung verwendet werden sollte. Weitere Informationen zu modernen Technologien, die ActiveX ersetzen, finden Sie unter ActiveX-Steuerelemente.
Hinweis
In diesem Artikel wird ein dialogbasiertes ActiveX-Steuerelementcontainerprojekt namens "Container" und ein eingebettetes Steuerelement namens "Circ" als Beispiele in den Prozeduren und Code verwendet.
Mithilfe der Schaltfläche "Ereignisse" im Eigenschaftenfenster (in der Klassenansicht) können Sie eine Zuordnung von Ereignissen erstellen, die in Ihrer ActiveX-Steuerelementcontaineranwendung auftreten können. Diese Zuordnung, die als "Ereignissenkenzuordnung" bezeichnet wird, wird von Visual C++ erstellt und verwaltet, wenn Sie der Steuerelementcontainerklasse Ereignishandler hinzufügen. Jeder Ereignishandler, der mit einem Ereigniszuordnungseintrag implementiert wird, ordnet ein bestimmtes Ereignis einer Containerereignishandlerelementfunktion zu. Diese Ereignishandlerfunktion wird aufgerufen, wenn das angegebene Ereignis vom ActiveX-Steuerelementobjekt ausgelöst wird.
Weitere Informationen über Event Sink Maps finden Sie unter Event Sink Maps in der Klassenbibliothek Referenz.
Änderungen des Ereignishandlers im Projekt
Wenn Sie das Fenster Eigenschaften verwenden, um Event Handler hinzuzufügen, wird in Ihrem Projekt eine Event Sink Map deklariert und definiert. Die folgenden Anweisungen werden der Steuerungs-.CPP-Datei beim ersten Hinzufügen eines Ereignishandlers hinzugefügt. Dieser Code deklariert eine Event Sink Map für die Klasse der Dialogbox (in diesem Fall CContainerDlg
):
BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)
END_EVENTSINK_MAP()
Wenn Sie das Fenster Eigenschaften verwenden, um Ereignisse hinzuzufügen, wird der Event Sink Map ein Eintrag (ON_EVENT
) hinzugefügt und der Implementierung (.CPP) des Containers wird eine Event Handler-Funktion hinzugefügt.
Im folgenden Beispiel wird ein Ereignishandler, genannt OnClickInCircCtrl
, für das ClickIn
-Ereignis des Circ-Steuerelements deklariert.
BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)
ON_EVENT(CContainerDlg, IDC_CIRCCTRL1, 1 /* ClickIn */, OnClickInCircctrl1,
VTS_I4 VTS_I4)
END_EVENTSINK_MAP()
Außerdem wird der CContainerDlg
-Klassenimplementierungsdatei (.CPP) für die Member-Funktion des Event Handlers die folgende Vorlage hinzugefügt:
BOOL CContainerDlg::OnClickInCircctrl1(OLE_XPOS_PIXELS nX, OLE_YPOS_PIXELS nY)
{
// use nX and nY here
TRACE(_T("nX = %d, nY = %d\n"), nX, nY);
return TRUE;
}
Weitere Informationen über Event Sink Makros finden Sie unter Event Sink Maps in der Klassenbibliothek Referenz.
So erstellen Sie eine Ereignishandlerfunktion
Wählen Sie in der Klassenansicht die Dialogfeldklasse aus, die das ActiveX-Steuerelement enthält. Verwenden Sie
CContainerDlg
für dieses Beispiel .Klicken Sie im Eigenschaftenfenster auf die Schaltfläche "Ereignisse ".
Wählen Sie im Eigenschaftenfenster die Steuerelement-ID des eingebetteten ActiveX-Steuerelements aus. Verwenden Sie
IDC_CIRCCTRL1
für dieses Beispiel .Das Eigenschaftenfenster zeigt eine Liste von Ereignissen an, die vom eingebetteten ActiveX-Steuerelement ausgelöst werden können. Jede Mitgliedsfunktion, die fett dargestellt wird, wurde bereits Handlerfunktionen zugewiesen.
Wählen Sie das Ereignis aus, das von der Dialogklasse behandelt werden soll. Wählen Sie in diesem Beispiel "Klicken" aus.
Wählen Sie im Dropdown-Listenfeld auf der rechten Seite "ClickCircctrl1 hinzufügen"< aus.>
Doppelklicken Sie in der Klassenansicht auf die neue Ereignis-Handler-Funktion, um zum Ereignishandlercode in der Implementierungsdatei (.CPP) von
CContainerDlg
zu springen.