Freigeben über


ActiveX-Steuerelementcontainer: Behandeln von Ereignissen eines ActiveX-Steuerelements

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

Hinweis

Dieser Artikel wird ein auf Dialogfeldern basierenden ActiveX-Steuerelementcontainer Projekt benannten Container ein eingebettetes Steuerelement, das Circ als Beispiele in den Prozeduren und im Code ".

Mit der Schaltfläche Ereignisse Sie im Eigenschaftenfenster, können Sie eine Zuordnung von Ereignissen erstellen, die in der ActiveX-Steuerelement-Containeranwendung auftreten können. Diese Zuordnung, als "Ereignissenkenzuordnung," wird von Visual C++ erstellt und verwaltet, wenn Sie der Steuerelementcontainerklasse Ereignishandler hinzufügen. Jeder Ereignishandler implementiert, mit einem Ereigniszuordnungseintrag, ordnet einem bestimmten Ereignis an eine Containerereignishandlermemberfunktion zu. Diese Ereignishandlerfunktion wird aufgerufen, wenn das angegebene Ereignis vom ActiveX-Steuerelementobjekt ausgelöst wird.

Weitere Informationen über Ereignissenkenzuordnungen, finden Sie unter Ereignissenkenzuordnungen in der Class Library Reference.

Ereignishandler-Änderungen zum Projekt

Wenn Sie das Eigenschaftenfenster verwenden, um Ereignishandler hinzuzufügen, wird eine Ereignissenkenzuordnung im Projekt deklariert und definiert. Die folgenden Anweisungen werden zur Steuercpp-datei hinzugefügt, wenn 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 hinzufügen möchten, ist ein Ereigniszuordnungseintrag (ON_EVENT) zur Ereignissenkenzuordnung und zu einem Ereignishandler hinzugefügt, die Funktion zur Implementierungsdatei des Containers (.CPP) hinzugefügt wird.

Das folgende Beispiel deklariert einen Ereignishandler, 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()

Außerdem wird die folgende Vorlage der Datei CContainerDlg (.CPP Klassenimplementierung) für die Ereignishandlermemberfunktion 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 Ereignissenkenmakros, finden Sie unter Ereignissenkenzuordnungen in der Class Library Reference.

Um eine Ereignishandlerfunktion erstellen

  1. In der Klassenansicht die Dialogfeldklasse aus, die das ActiveX-Steuerelement enthält. Verwenden Sie beispielsweise 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. Verwenden Sie beispielsweise IDC_CIRCCTRL1.

    Das Eigenschaftenfenster zeigt eine Liste von Ereignissen an, die das ActiveX-Steuerelement eingebettete ausgelöst werden können. Jede Memberfunktion, die in Fettdruck wurde veranschaulicht wird bereits, die Handlerfunktionen, die an sie zugewiesen werden.

  4. Wählen Sie das Ereignis aus, das Sie der Dialogfeldklasse behandeln soll. In diesem Beispiel die Option Klicken aus.

  5. Wählen Sie im Dropdown-Listenfeld rechts, und wählen Sie <Add> ClickCircctrl1 aus.

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

Siehe auch

Konzepte

ActiveX-Steuerelementcontainer