Kontenery formantów ActiveX: obsługa zdarzeń z formantu ActiveX
W tym artykule omówiono, aby zainstalować programy obsługi zdarzeń dla formantów ActiveX w kontenerze formantu ActiveX za pomocą okna właściwości.Programy obsługi zdarzeń są używane do otrzymywania powiadomień (od formantu) pewnych zdarzeń i wykonywanie określonej akcji w odpowiedzi.To powiadomienie jest nazywany "wypalania" zdarzenie.
[!UWAGA]
W tym artykule wykorzystano dokończyć ActiveX formant kontenera projekt o nazwie kontener i osadzony formant o nazwie Circ jako przykłady w procedurach i kodu.
W oknie dialogowym właściwości za pomocą przycisku zdarzeń, można utworzyć mapę zdarzeń, które mogą wystąpić w aplikacji kontenera ActiveX control.Mapa ta, nazywana "zdarzenie obiekt sink mapą,'' jest tworzone i utrzymywane przez Visual C++ po dodaniu do klasy pojemnika kontroli procedury obsługi zdarzeń.Każdy program obsługi zdarzeń, realizowane z wpisu mapy zdarzenia określonego zdarzenia jest mapowany na funkcję członka programu obsługi zdarzeń kontenera.Do funkcji obsługi zdarzeń jest wywoływane, gdy określone zdarzenie jest uruchamiany przez obiekt formantu ActiveX.
Aby uzyskać więcej informacji na mapach obiekt sink zdarzeń, zobacz Mapy obiektu Sink zdarzenia w Informacje dotyczące biblioteki klas.
Modyfikacje programu obsługi zdarzeń do projektu
Gdy okno właściwości umożliwia dodawanie obsługi zdarzeń, mapą obiekt sink zdarzeń jest zadeklarowana i zdefiniowane w projekcie.Poniższe instrukcje są dodawane do formantu.Plik CPP program obsługi zdarzeń jest dodawany po raz pierwszy.Ten kod deklaruje się mapa obiekt sink zdarzeń dla klasy pole dialogowe (w tym przypadku, CContainerDlg):
BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)
...
END_EVENTSINK_MAP()
Podczas dodawanie zdarzeń przy użyciu okna właściwości, zdarzenia mapować wpis (ON_EVENT) dodaje się mapę obiekt sink zdarzeń oraz moduł obsługi zdarzeń funkcja jest dodawany do wykonania kontenera (.Plik CPP).
W poniższym przykładzie deklaruje Obsługa zdarzeń, o nazwie OnClickInCircCtrl, do celów kontroli Circ ClickIn zdarzenia:
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 jest dodawany do CContainerDlg Implementacja klasy (.Plik CPP) dla funkcji członka programu 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 temat makr obiekt sink zdarzeń, zobacz Mapy obiektu Sink zdarzenia w Informacje dotyczące biblioteki klas.
Aby utworzyć funkcję obsługi zdarzenia
Widok klasy zaznacz klasy okno dialogowe, zawierający formant ActiveX.W tym przykładzie należy użyć CContainerDlg.
W oknie właściwości kliknij zdarzenia przycisk.
W oknie właściwości wybierz identyfikator formantu z osadzonego formantu ActiveX.W tym przykładzie należy użyć IDC_CIRCCTRL1.
Okno właściwości wyświetla listę zdarzeń, które może być uruchamiany przez osadzony formant ActiveX.Żadnych funkcji członka oznaczone pogrubioną czcionką już zostało powierzone mu funkcje obsługi.
Wybierz zdarzenie ma klasy okno do obsługi.W tym przykładzie należy wybrać kliknij.
W polu listy rozwijanej po prawej stronie, wybierz opcję <Dodaj > ClickCircctrl1.
Kliknij dwukrotnie nową funkcję obsługi z widoku klasy, aby przeskoczyć do kod obsługi zdarzeń w realizacji (.Plik CPP) z CContainerDlg.