Makra map delegátů a rozhraní
MFC podporuje tato makra pro mapování delegátů a rozhraní:
Název | 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í. CommandUIHandler
je 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
ČLEN
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
DELEGOVAT
Typ delegáta obslužné rutiny spravované události, například EventHandler.
ČLEN
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 MyControl
MFC . Š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