Formanty MFC ActiveX: metody
Kontrolka ActiveX uruchamia zdarzenia, aby komunikować się między sobą i kontenerem sterowania. Kontener może również komunikować się z kontrolką za pomocą metod i właściwości. Metody są również nazywane funkcjami.
Metody i właściwości zapewniają wyeksportowany interfejs do użycia przez inne aplikacje, takie jak klienci usługi Automation i kontenery kontrolek ActiveX. Aby uzyskać więcej informacji na temat właściwości kontrolek ActiveX, zobacz artykuł MFC ActiveX Controls: Properties (Kontrolki ActiveX MFC: właściwości).
Metody są podobne do funkcji składowych klasy C++. Istnieją dwa typy metod, które można zaimplementować w kontrolce: stock i custom. Podobnie jak w przypadku zdarzeń magazynowych, metody magazynowe to metody, dla których COleControl zapewnia implementację. Aby uzyskać więcej informacji na temat metod zapasów, zobacz artykuł MFC ActiveX Controls: Adding Stock Methods (Kontrolki ActiveX MFC: dodawanie metod stockowych). Metody niestandardowe zdefiniowane przez dewelopera umożliwiają dodatkowe dostosowanie kontrolki. Aby uzyskać więcej informacji, zobacz artykuł MFC ActiveX Controls: Adding Custom Methods (Kontrolki ActiveX MFC: dodawanie metod niestandardowych).
Biblioteka klas programu Microsoft Foundation (MFC) implementuje mechanizm, który umożliwia sterowanie obsługą metod standardowych i niestandardowych. Pierwsza część to klasa COleControl
. Pochodne z CWnd
COleControl
funkcji składowych obsługują metody magazynowe, które są wspólne dla wszystkich kontrolek ActiveX. Drugą częścią tego mechanizmu jest mapa wysyłania. Mapa wysyłania jest podobna do mapy komunikatów; jednak zamiast mapować funkcję na identyfikator komunikatu systemu Windows, mapa wysyłania mapuje funkcje wirtualnego elementu członkowskiego do identyfikatorów IDispatch.
Aby kontrolka obsługiwała różne metody prawidłowo, jej klasa musi zadeklarować mapę wysyłania. Jest to realizowane za pomocą następującego wiersza kodu znajdującego się w nagłówku klasy sterującej (. Plik H):
DECLARE_DISPATCH_MAP()
Głównym celem mapy wysyłania jest ustanowienie relacji między nazwami metod używanymi przez obiekt wywołujący zewnętrzny (np. kontener) i funkcjami składowych klasy kontrolki, która implementuje metody. Po zadeklarowaniu mapy wysyłki należy ją zdefiniować w implementacji kontrolki (. Plik CPP). Następujące wiersze kodu definiują mapę wysyłania:
BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
END_DISPATCH_MAP()
Jeśli do utworzenia projektu użyto Kreatora kontrolek ActiveX MFC, te wiersze zostały dodane automatycznie. Jeśli kreator kontrolek ActiveX MFC nie był używany, należy dodać te wiersze ręcznie.
W poniższych artykułach szczegółowo omówiono metody: