Udostępnij za pośrednictwem


Pojemniki formantu ActiveX: Obsługa zdarzeń z formantu ActiveX

W tym artykule omówiono, za pomocą okna właściwości zainstalować programy obsługi zdarzeń dla formantów ActiveX w kontenerze formantu ActiveX.Programy obsługi zdarzeń są używane do odbierania powiadomień (z formantu) pewnych zdarzeń i wykonywanie określonej akcji w odpowiedzi.To powiadomienie jest zwane "opalanych" zdarzenie.

[!UWAGA]

W tym artykule wykorzystano na okno dialogowe ActiveX formantu kontenera projekt o nazwie kontenera i osadzony formant o nazwie okólnik jako przykłady kodu i procedur.

Za pomocą przycisku zdarzeń w oknie dialogowym właściwości, można utworzyć mapę zdarzeń, które mogą wystąpić w aplikacji kontenera ActiveX formant.Ta mapa o nazwie "event sink mapę,'' jest tworzony i utrzymywane przez Visual C++, podczas dodawania obsługi zdarzeń klasy formantu kontenera.Każdy obsługi zdarzenia, z wpisu mapy zdarzenia mapuje określonego zdarzenia funkcji Członkowskich obsługi zdarzenia kontenera.Do funkcji obsługi zdarzeń jest wywoływane, gdy określone zdarzenie jest wywoływane przez obiekt formantu ActiveX.

Aby uzyskać więcej informacji na mapach sink zdarzeń, zobacz Mapy obiektu Sink zdarzenia w Odwołanie do biblioteki klas.

Modyfikacje programu obsługi zdarzeń do projektu

Gdy okno właściwości Dodawanie obsługi zdarzeń, mapę obiektu sink zdarzenia jest zadeklarowana i zdefiniowane w projekcie.Poniższe instrukcje są dodawane do formantu.Plik CPP programu obsługi zdarzeń jest dodawany po raz pierwszy.Ten kod deklaruje mapę sink zdarzeń dla klasy okno dialogowe (w tym przypadku CContainerDlg):

BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)


...


END_EVENTSINK_MAP()

Jak okno właściwości zdarzenia dodać zdarzenie mapę wejścia (ON_EVENT) jest dodawany do mapy sink zdarzeń oraz moduł obsługi zdarzeń funkcji jest dodawany do kontenera wdrażania (.Plik CPP).

Poniższy przykład deklaruje programu obsługi zdarzeń o nazwie OnClickInCircCtrl, do celów kontroli okólnik ClickIn zdarzeń:

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

Ponadto następujący szablon zostanie dodany do CContainerDlg Implementacja klasy (.Plik CPP) dla funkcji Członkowskich obsługi zdarzeń:

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;
}

Aby uzyskać więcej informacji na makra sink zdarzeń, zobacz Mapy obiektu Sink zdarzenia w Odwołanie do biblioteki klas.

Aby utworzyć funkcję obsługi zdarzeń

  1. Widok klasy zaznacz klasy okno dialogowe, który zawiera formant ActiveX.Na przykład użyj CContainerDlg.

  2. W oknie dialogowym właściwości kliknij zdarzenia przycisk.

  3. W oknie dialogowym właściwości wybierz identyfikator formantu osadzony formant ActiveX.Na przykład użyj IDC_CIRCCTRL1.

    Okno właściwości zawiera listę zdarzeń, które mogą być opalane osadzony formant ActiveX.Każda funkcja Członkowskie pogrubione już ma powierzone mu funkcje obsługi.

  4. Wybierz zdarzenie, które chcesz klasy okno dialogowe obsługi.Na przykład wybierz kliknij.

  5. W polu listy rozwijanej po prawej stronie wybierz <Add> ClickCircctrl1.

  6. Kliknij dwukrotnie nową funkcję obsługi z widoku klasy, aby przeskoczyć do kodu obsługi zdarzeń w realizacji (.Plik CPP) CContainerDlg.

Zobacz też

Koncepcje

Pojemniki formantu ActiveX