Freigeben über


ActiveX-Steuerelementcontainer: Behandeln von Ereignissen aus einem ActiveX-Steuerelement

In diesem Artikel wird mithilfe des Eigenschaftenfensters, um Ereignishandler für ActiveX-Steuerelemente in einem ActiveX-Steuerelement-Container zu installieren.Die Ereignishandler werden verwendet, um Benachrichtigungen vom Steuerelement () über bestimmte Ereignisse zu empfangen und in der Antwort eine Aktion auszuführen.Diese Benachrichtigung wird "" Auslösen des Ereignisses aufgerufen.

HinweisHinweis

In diesem Artikel wird ein auf Dialogfeldern basierende ActiveX-Steuerelement-Container Projekt benannten Container und ein eingebettetes Steuerelement, das Circ als Beispiele in den Prozeduren und den Code genannt wird.

Mit der Schaltfläche Ereignisse im Eigenschaftenfenster können Sie eine Zuordnung von Ereignissen erstellen, die in der ActiveX-Steuerelement-Containeranwendung auftreten können.Diese Zuordnung, Ereignissenkenzuordnung "genannt," wird von Visual C++ erstellt und verwaltet, wenn Sie Ereignishandler der Steuerelementcontainer Klasse hinzufügen.Jeder Ereignishandler implementiert, mit einem Eintrag Ereigniszuordnungs ordnet ein bestimmtes Ereignis auf eine Memberfunktion einer Ereignishandler Container zu.Die Ereignishandlerfunktion wird aufgerufen, wenn das angegebene Ereignis vom ActiveX-Steuerelementobjekt ausgelöst wird.

Weitere Informationen zu Ereignissenkenzuordnungen finden Sie unter Ereignissenkenzuordnungen im Klassenbibliotheks-Verweis.

Dem Projekt Ereignishandler-Änderungen

Wenn das Eigenschaftenfenster verwenden, um Ereignishandler hinzuzufügen, wird eine Ereignissenkenzuordnung im Projekt deklariert und definiert.Die folgenden Anweisungen werden zur cpp-datei Steuerelements hinzugefügt, das erste Mal ein Ereignishandler hinzugefügt wird.Dieser Code deklariert eine Ereignissenkenzuordnung für die Dialogfeldklasse (in diesem Fall CContainerDlg):

BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)


...


END_EVENTSINK_MAP()

Während Sie das Eigenschaftenfenster verwenden, um Ereignisse hinzuzufügen, wird ein Eintrag Ereigniszuordnungs (ON_EVENT-Ereignissenkenzuordnung) sowie ein Ereignishandler hinzugefügt, die Funktion der Implementierungsdatei des Containers (.CPP) hinzugefügt wird.

Das folgende Beispiel deklariert einen Ereignishandler namens OnClickInCircCtrl, für das Circ- ClickIn-Ereignis des Steuerelements:

BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)
   ON_EVENT(CContainerDlg, IDC_CIRCCTRL1, 1 /* ClickIn */, OnClickInCircctrl1, 
      VTS_I4 VTS_I4)
END_EVENTSINK_MAP()

Darüber hinaus wird die folgende Vorlage (Klassenimplementierung CContainerDlg in die Datei .CPP) für die Memberfunktion einer Ereignishandler 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 Ereignissenken von Makros finden Sie unter Ereignissenkenzuordnungen im Klassenbibliotheks-Verweis.

So erstellen Sie eine Ereignishandlerfunktion

  1. Von der Klassenansicht markieren Sie die Dialogfeldklasse aus, die das ActiveX-Steuerelement enthält.In diesem Beispiel verwenden Sie CContainerDlg.

  2. Klicken Sie im Eigenschaftenfenster auf die Schaltfläche Ereignisse.

  3. Wählen Sie im Eigenschaftenfenster die Steuerelement-ID des eingebetteten ActiveX-Steuerelements aus.In diesem Beispiel verwenden Sie IDC_CIRCCTRL1.

    Das Eigenschaftenfenster zeigt eine Liste mit Ereignissen an, die durch das eingebettete ActiveX-Steuerelement ausgelöst werden können.Jede Memberfunktion, die in Fettschrift angezeigt wird, die bereits über Handlerfunktionen, die an sie zugewiesen wurden.

  4. Wählen Sie das Ereignis aus, das Sie die Dialogfeldklasse behandeln soll.Wählen Sie für dieses Beispiel Klicken.

  5. Klicken Sie im Dropdown-Listenfeld rechts ausgewähltes <Add> ClickCircctrl1.

  6. Doppelklicken Sie auf die neue Handlerfunktion in der Klassenansicht den Ereignishandlercode in der Implementierungsdatei (.CPP) von CContainerDlg zu wechseln.

Siehe auch

Konzepte

ActiveX-Steuerelementcontainer