Udostępnij za pośrednictwem


Makra delegata i mapy interfejsu

MFC obsługuje te makra dla map delegatów i interfejsów:

Nazwa/nazwisko opis
BEGIN_DELEGATE_MAP Rozpoczyna mapę delegata.
BEGIN_INTERFACE_MAP Rozpoczyna definicję mapy interfejsowej.
Delegat programu CommandHandler Rejestruje metody wywołania zwrotnego za pomocą źródła poleceń.
END_DELEGATE_MAP Kończy mapę delegata.
END_INTERFACE_MAP Kończy mapę interfejsu w pliku implementacji.
EVENT_DELEGATE_ENTRY Tworzy wpis na mapie delegatów.
INTERFACE_PART Używany między makrem BEGIN_INTERFACE_MAP a makrem END_INTERFACE_MAP dla każdego interfejsu, który będzie obsługiwać obiekt.
MAKE_DELEGATE Dołącza procedurę obsługi zdarzeń do zarządzanej kontrolki.

BEGIN_DELEGATE_MAP

Rozpoczyna mapę delegata.

Składnia

BEGIN_DELEGATE_MAP(  CLASS );

Parametry

KLASA
Klasa, w której jest hostowana zarządzana kontrolka.

Uwagi

To makro oznacza początek listy wpisów delegatów, które tworzą mapę delegatów. Aby zapoznać się z przykładem użycia tego makra, zobacz EVENT_DELEGATE_ENTRY.

Wymagania

Nagłówek: msclr\event.h

BEGIN_INTERFACE_MAP

Rozpoczyna definicję mapy interfejsu, gdy jest używana w pliku implementacji.

Składnia

BEGIN_INTERFACE_MAP( theClass, baseClass )

Parametry

theClass
Klasa, w której ma zostać zdefiniowana mapa interfejsu

baseClass
Klasa, z której pochodzi klasa TheClass .

Uwagi

Dla każdego zaimplementowanego interfejsu istnieje co najmniej jedno wywołanie makra INTERFACE_PART. Dla każdej agregacji używanej przez klasę istnieje jedno wywołanie makra INTERFACE_AGGREGATE.

Aby uzyskać więcej informacji na temat map interfejsu, zobacz Technical Note 38 (Uwaga techniczna 38).

Wymagania

Nagłówek: afxwin.h

Delegat programu CommandHandler

Rejestruje metody wywołania zwrotnego za pomocą źródła poleceń.

Składnia

delegate void CommandHandler(  UINT^ cmdID  );

Parametry

cmdID
Identyfikator polecenia.

Uwagi

Ten delegat rejestruje metody wywołania zwrotnego za pomocą źródła poleceń. Po dodaniu delegata do obiektu źródłowego polecenia metoda wywołania zwrotnego staje się procedurą obsługi poleceń pochodzących z określonego źródła.

Aby uzyskać więcej informacji, zobacz How to: Add Command Routing to the Windows Forms Control (Instrukcje: dodawanie routingu poleceń do kontrolki Formularze systemu Windows).

Aby uzyskać więcej informacji na temat korzystania z formularzy systemu Windows, zobacz Using a Windows Form User Control in MFC (Używanie kontrolki użytkownika formularza systemu Windows w MFC).

Wymagania

Nagłówek: afxwinforms.h (zdefiniowany w zestawie atlmfc\lib\mfcmifc80.dll)

CommandUIHandler

Rejestruje metody wywołania zwrotnego za pomocą komunikatu polecenia aktualizacji interfejsu użytkownika.

Składnia

delegate void CommandUIHandler(  unsigned int cmdID, ICommandUI^ cmdUI);

Parametry

cmdID
Identyfikator polecenia.

cmdUI
Identyfikator komunikatu polecenia.

Uwagi

Ten delegat rejestruje metody wywołania zwrotnego za pomocą komunikatu polecenia aktualizacji interfejsu użytkownika. CommandUIHandler jest podobny do polecenia CommandHandler , z tą różnicą, że ten delegat jest używany z poleceniami aktualizacji obiektów interfejsu użytkownika. Polecenia aktualizacji interfejsu użytkownika powinny być mapowane jeden na jeden z metod obsługi komunikatów.

Aby uzyskać więcej informacji na temat korzystania z formularzy systemu Windows, zobacz Using a Windows Form User Control in MFC (Używanie kontrolki użytkownika formularza systemu Windows w MFC).

Wymagania

Nagłówek: afxwinforms.h (zdefiniowany w zestawie atlmfc\lib\mfcmifc80.dll)

END_DELEGATE_MAP

Kończy mapę delegata.

Składnia

END_DELEGATE_MAP();

Uwagi

To makro oznacza koniec listy wpisów delegatów, które tworzą mapę delegata. Aby zapoznać się z przykładem użycia tego makra, zobacz EVENT_DELEGATE_ENTRY.

Wymagania

Nagłówek: msclr\event.h

END_INTERFACE_MAP

Kończy mapę interfejsu w pliku implementacji.

Składnia

END_INTERFACE_MAP( )

Uwagi

Aby uzyskać więcej informacji na temat map interfejsu, zobacz Technical Note 38 (Uwaga techniczna 38).

Wymagania

Nagłówek: afxwin.h

EVENT_DELEGATE_ENTRY

Tworzy wpis na mapie delegatów.

Składnia

EVENT_DELEGATE_ENTRY(MEMBER, ARG0, ARG1);

Parametry

CZŁONEK
Metoda obsługi zdarzeń, która ma zostać dołączona do kontrolki.

ARG0
Pierwszy argument metody obsługi zdarzeń zarządzanych, taki jak Object^.

ARG1
Drugi argument metody obsługi zdarzeń zarządzanych, taki jak EventArgs^.

Uwagi

Każdy wpis na mapie delegata odpowiada delegatowi programu obsługi zdarzeń zarządzanego utworzonego przez MAKE_DELEGATE.

Przykład

Poniższy przykład kodu przedstawia sposób użycia EVENT_DELEGATE_ENTRY do utworzenia wpisu na mapie delegata dla OnClick programu obsługi zdarzeń. Zobacz również przykład kodu w MAKE_DELEGATE. Aby uzyskać więcej informacji, zobacz How to: Sink Windows Forms Events from Native C++ Classes (Instrukcje: ujście zdarzeń formularzy systemu Windows z natywnych klas języka C++).

BEGIN_DELEGATE_MAP(CMyView)
   EVENT_DELEGATE_ENTRY(OnClick, System::Object^, System::EventArgs^)
END_DELEGATE_MAP()

Wymagania

Nagłówek: msclr\event.h

INTERFACE_PART

Używany między makrem BEGIN_INTERFACE_MAP a makrem END_INTERFACE_MAP dla każdego interfejsu, który będzie obsługiwać obiekt.

Składnia

INTERFACE_PART( theClass, iid, localClass)

Parametry

theClass
Nazwa klasy zawierającej mapę interfejsu. identyfikator iid
Identyfikator IID, który ma zostać zamapowany na klasę osadzoną. localClass
Nazwa klasy lokalnej.

Uwagi

Umożliwia mapowania identyfikatora IID na składową klasy wskazanej przez klasęClass i localClass.

Aby uzyskać więcej informacji na temat map interfejsu, zobacz Technical Note 38 (Uwaga techniczna 38).

Wymagania

Nagłówek: afxwin.h

MAKE_DELEGATE

Dołącza procedurę obsługi zdarzeń do zarządzanej kontrolki.

Składnia

MAKE_DELEGATE( DELEGATE,  MEMBER) ;

Parametry

DELEGAT
Typ delegata programu obsługi zdarzeń zarządzanych, na przykład EventHandler.

CZŁONEK
Nazwa metody obsługi zdarzeń, która ma być dołączona do kontrolki.

Uwagi

To makro tworzy delegata programu obsługi zdarzeń zarządzanych typu DELEGATE i nazwy MEMBER. Delegat programu obsługi zdarzeń zarządzanych umożliwia klasom natywnym obsługę zdarzeń zarządzanych.

Przykład

W poniższym przykładzie kodu pokazano, jak wywołać metodę MAKE_DELEGATE OnClick dołączania procedury obsługi zdarzeń do kontrolki MyControlMFC . Aby uzyskać szerszy opis działania tego makra w aplikacji MFC, zobacz Instrukcje: ujście zdarzeń formularzy systemu Windows z natywnych klas języka C++.

// CMyView derives from CWinFormsView.
void CMyView::OnInitialUpdate()
{
   CWinFormsView::OnInitialUpdate();

   GetControl()->Click += MAKE_DELEGATE(System::EventHandler, OnClick);
}

Wymagania

Nagłówek: msclr\event.h

Zobacz też

Instrukcje: wychwytywanie zdarzeń interfejsu Windows Forms z klas natywnych języka C++
Instrukcje: dodawanie routingu poleceń do formantu interfejsu Windows Forms
Makra i globalne