Sdílet prostřednictvím


Makra map delegátů a rozhraní

Poznámka:

Knihovna MFC (Microsoft Foundation Classes) se nadále podporuje. Už ale nepřidáme funkce ani aktualizujeme dokumentaci.

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

Name Description
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.

Syntax

BEGIN_DELEGATE_MAP(  CLASS );

Parameters

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

Remarks

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.

Requirements

Hlavička: msclr\event.h

BEGIN_INTERFACE_MAP

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

Syntax

BEGIN_INTERFACE_MAP( theClass, baseClass )

Parameters

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

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

Remarks

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.

Requirements

Hlavička: afxwin.h

Delegování obslužné rutiny commandhandler

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

Syntax

delegate void CommandHandler(  UINT^ cmdID  );

Parameters

cmdID
ID příkazu.

Remarks

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.

Requirements

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í.

Syntax

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

Parameters

cmdID
ID příkazu.

cmdUI
ID zprávy příkazu.

Remarks

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.

Requirements

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

END_DELEGATE_MAP

Ukončí mapu delegáta.

Syntax

END_DELEGATE_MAP();

Remarks

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.

Requirements

Hlavička: msclr\event.h

END_INTERFACE_MAP

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

Syntax

END_INTERFACE_MAP( )

Remarks

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

Requirements

Hlavička: afxwin.h

EVENT_DELEGATE_ENTRY

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

Syntax

EVENT_DELEGATE_ENTRY(MEMBER, ARG0, ARG1);

Parameters

MEMBER
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^.

Remarks

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

Example

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()

Requirements

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.

Syntax

INTERFACE_PART( theClass, iid, localClass)

Parameters

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.

Remarks

Umožňuje namapovat IID na člena třídy označené theClass a localClass.

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

Requirements

Hlavička: afxwin.h

MAKE_DELEGATE

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

Syntax

MAKE_DELEGATE( DELEGATE,  MEMBER) ;

Parameters

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

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

Remarks

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

Example

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);
}

Requirements

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