Sdílet prostřednictvím


Makra map delegátů a rozhraní

MFC podporuje tato makra pro mapování delegátů a rozhraní:

Jméno popis
BEGIN_DELEGATE_MAP Zahájí mapu delegáta.
BEGIN_INTERFACE_MAP Zahájí definici map rozhraní.
Delegování obslužné rutiny commandhandler Zaregistruje metody zpětného volání ve zdroji příkazů.
END_DELEGATE_MAP Ukončí mapu delegáta.
END_INTERFACE_MAP Ukončí mapování rozhraní v souboru implementace.
EVENT_DELEGATE_ENTRY Vytvoří položku v mapě delegáta.
INTERFACE_PART Používá se mezi BEGIN_INTERFACE_MAP makrem a makrem END_INTERFACE_MAP pro každé rozhraní, které objekt bude podporovat.
MAKE_DELEGATE Připojí obslužnou rutinu události ke spravovanému ovládacímu prvku.

BEGIN_DELEGATE_MAP

Zahájí mapu delegáta.

Syntaxe

BEGIN_DELEGATE_MAP(  CLASS );

Parametry

TŘÍDA
Třída, ve které je spravovaný ovládací prvek hostovaný.

Poznámky

Toto makro označuje začátek seznamu položek delegáta, které tvoří mapu delegáta. Příklad použití tohoto makra najdete v tématu EVENT_DELEGATE_ENTRY.

Požadavky

Hlavička: msclr\event.h

BEGIN_INTERFACE_MAP

Začne definici map rozhraní při použití v souboru implementace.

Syntaxe

BEGIN_INTERFACE_MAP( theClass, baseClass )

Parametry

theClass
Třída, ve které má být definována mapa rozhraní

Baseclass
Třída, ze které Třída je odvozena.

Poznámky

Pro každé implementované rozhraní existuje jedno nebo více INTERFACE_PART vyvolání maker. Pro každou agregaci, kterou třída používá, existuje jedna INTERFACE_AGGREGATE vyvolání makra.

Další informace o mapách rozhraní naleznete v technické poznámce 38.

Požadavky

Hlavička: afxwin.h

Delegování obslužné rutiny commandhandler

Zaregistruje metody zpětného volání ve zdroji příkazů.

Syntaxe

delegate void CommandHandler(  UINT^ cmdID  );

Parametry

cmdID
ID příkazu.

Poznámky

Tento delegát registruje metody zpětného volání ve zdroji příkazů. Když přidáte delegáta do zdrojového objektu příkazu, metoda zpětného volání se stane obslužnou rutinou pro příkazy přicházející ze zadaného zdroje.

Další informace naleznete v tématu Postupy: Přidání směrování příkazů do model Windows Forms ovládacího prvku.

Další informace o používání model Windows Forms naleznete v tématu Použití uživatelského ovládacího prvku Windows Form v prostředí MFC.

Požadavky

Hlavička: afxwinforms.h (definovaná v sestavení atlmfc\lib\mfcmifc80.dll)

CommandUIHandler

Zaregistruje metody zpětného volání ve zprávě příkazu update uživatelského rozhraní.

Syntaxe

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

Parametry

cmdID
ID příkazu.

cmdUI
ID zprávy příkazu.

Poznámky

Tento delegát registruje metody zpětného volání pomocí zprávy příkazu update uživatelského rozhraní. CommandUIHandlerje podobná commandhandler s tím rozdílem, že tento delegát se používá s příkazy aktualizace objektu uživatelského rozhraní. Příkazy aktualizace uživatelského rozhraní by měly být mapovány 1:1 s metodami obslužné rutiny zpráv.

Další informace o používání model Windows Forms naleznete v tématu Použití uživatelského ovládacího prvku Windows Form v prostředí MFC.

Požadavky

Hlavička: afxwinforms.h (definovaná v sestavení atlmfc\lib\mfcmifc80.dll)

END_DELEGATE_MAP

Ukončí mapu delegáta.

Syntaxe

END_DELEGATE_MAP();

Poznámky

Toto makro označuje konec seznamu položek delegáta, které tvoří mapu delegáta. Příklad použití tohoto makra najdete v tématu EVENT_DELEGATE_ENTRY.

Požadavky

Hlavička: msclr\event.h

END_INTERFACE_MAP

Ukončí mapování rozhraní v souboru implementace.

Syntaxe

END_INTERFACE_MAP( )

Poznámky

Další informace o mapách rozhraní naleznete v technické poznámce 38.

Požadavky

Hlavička: afxwin.h

EVENT_DELEGATE_ENTRY

Vytvoří položku v mapě delegáta.

Syntaxe

EVENT_DELEGATE_ENTRY(MEMBER, ARG0, ARG1);

Parametry

ČLENSKÉ
Metoda obslužné rutiny události, která se má připojit k ovládacímu prvku.

ARG0
První argument metody obslužné rutiny spravované události, například Object^.

ARG1
Druhý argument metody obslužné rutiny spravované události, například EventArgs^.

Poznámky

Každá položka v mapě delegáta odpovídá delegátovi obslužné rutiny spravované události vytvořeného MAKE_DELEGATE.

Příklad

Následující příklad kódu ukazuje, jak pomocí EVENT_DELEGATE_ENTRY vytvořit položku v mapě delegáta pro obslužnou rutinu OnClick události; viz také příklad kódu v MAKE_DELEGATE. Další informace naleznete v tématu Postupy: Jímka model Windows Forms události z nativních tříd C++.

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

Požadavky

Hlavička: msclr\event.h

INTERFACE_PART

Používá se mezi BEGIN_INTERFACE_MAP makrem a makrem END_INTERFACE_MAP pro každé rozhraní, které objekt bude podporovat.

Syntaxe

INTERFACE_PART( theClass, iid, localClass)

Parametry

theClass
Název třídy, která obsahuje mapu rozhraní. Iid
IID, který má být namapován na vloženou třídu. localClass
Název místní třídy.

Poznámky

Umožňuje namapovat IID na člen třídy označenou třídouClass a localClass.

Další informace o mapách rozhraní naleznete v technické poznámce 38.

Požadavky

Hlavička: afxwin.h

MAKE_DELEGATE

Připojí obslužnou rutinu události ke spravovanému ovládacímu prvku.

Syntaxe

MAKE_DELEGATE( DELEGATE,  MEMBER) ;

Parametry

DELEGÁT
Typ delegáta obslužné rutiny spravované události, například EventHandler.

ČLENSKÉ
Název metody obslužné rutiny události, která má být připojena k ovládacímu prvku.

Poznámky

Toto makro vytvoří delegáta obslužné rutiny spravované události typu DELEGATE a člena názvu. Delegát spravované obslužné rutiny události umožňuje nativní třídě zpracovávat spravované události.

Příklad

Následující příklad kódu ukazuje, jak volat MAKE_DELEGATE připojení obslužné OnClick rutiny události k ovládacímu prvku MyControlMFC . Širší vysvětlení toho, jak toto makro funguje v aplikaci MFC, naleznete v tématu Postupy: Jímka model Windows Forms události z nativních tříd C++.

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

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

Požadavky

Hlavička: msclr\event.h

Viz také

Postupy: Zpracování událostí modelu Windows Forms z nativních tříd jazyka C++
Postupy: Přidání směrování příkazů do ovládacího prvku Windows Forms
Makra a globální objekty