Поделиться через


Макросы схем делегата и интерфейса

MFC поддерживает эти макросы для карт делегатов и интерфейсов:

Имя Описание
BEGIN_DELEGATE_MAP Начинает карту делегата.
BEGIN_INTERFACE_MAP Начинает определение интерфейсной карты.
Делегат CommandHandler Регистрирует методы обратного вызова в источнике команд.
END_DELEGATE_MAP Заканчивает карту делегата.
END_INTERFACE_MAP Заканчивает карту интерфейса в файле реализации.
EVENT_DELEGATE_ENTRY Создает запись на карте делегата.
INTERFACE_PART Используется между макросом BEGIN_INTERFACE_MAP и макросом END_INTERFACE_MAP для каждого интерфейса, который будет поддерживаться.
MAKE_DELEGATE Присоединяет обработчик событий к управляемому элементу управления.

BEGIN_DELEGATE_MAP

Начинает карту делегата.

Синтаксис

BEGIN_DELEGATE_MAP(  CLASS );

Параметры

КЛАСС
Класс, в котором размещен управляемый элемент управления.

Замечания

Этот макрос помечает начало списка записей делегатов, составляющих карту делегата. Пример использования этого макроса см. в EVENT_DELEGATE_ENTRY.

Требования

Заголовок: msclr\event.h

BEGIN_INTERFACE_MAP

Начинает определение интерфейсной карты при использовании в файле реализации.

Синтаксис

BEGIN_INTERFACE_MAP( theClass, baseClass )

Параметры

TheClass
Класс, в котором определяется схема интерфейсов.

baseClass
Класс, от которого наследуется класс.

Замечания

Для каждого реализованного интерфейса существует один или несколько вызовов макросов INTERFACE_PART. Для каждой статистической суммы, которую использует класс, существует один вызов макроса INTERFACE_AGGREGATE.

Дополнительные сведения о картах интерфейсов см . в техническом примечание 38.

Требования

Заголовок: afxwin.h

Делегат CommandHandler

Регистрирует методы обратного вызова в источнике команд.

Синтаксис

delegate void CommandHandler(  UINT^ cmdID  );

Параметры

cmdID
Идентификатор команды.

Замечания

Этот делегат регистрирует методы обратного вызова в источнике команд. При добавлении делегата в исходный объект команды метод обратного вызова становится обработчиком команд, поступающих из указанного источника.

Дополнительные сведения см. в статье "Практическое руководство. Добавление маршрутизации команд в элемент управления Windows Forms".

Дополнительные сведения об использовании Windows Forms см. в разделе "Использование пользовательского элемента управления Windows Form" в MFC.

Требования

Заголовок: afxwinforms.h (определен в сборке atlmfc\lib\mfcmifc80.dll)

CommandUIHandler

Регистрирует методы обратного вызова с помощью сообщения команды обновления пользовательского интерфейса.

Синтаксис

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

Параметры

cmdID
Идентификатор команды.

cmdUI
Идентификатор сообщения команды.

Замечания

Этот делегат регистрирует методы обратного вызова с помощью сообщения команды обновления пользовательского интерфейса. CommandUIHandler аналогично CommandHandler , за исключением того, что этот делегат используется с командами обновления объектов пользовательского интерфейса. Команды обновления пользовательского интерфейса должны быть сопоставлены с методами обработчика сообщений.

Дополнительные сведения об использовании Windows Forms см. в разделе "Использование пользовательского элемента управления Windows Form" в MFC.

Требования

Заголовок: afxwinforms.h (определен в сборке atlmfc\lib\mfcmifc80.dll)

END_DELEGATE_MAP

Заканчивает карту делегата.

Синтаксис

END_DELEGATE_MAP();

Замечания

Этот макрос помечает конец списка записей делегатов, составляющих карту делегатов. Пример использования этого макроса см. в EVENT_DELEGATE_ENTRY.

Требования

Заголовок: msclr\event.h

END_INTERFACE_MAP

Заканчивает карту интерфейса в файле реализации.

Синтаксис

END_INTERFACE_MAP( )

Замечания

Дополнительные сведения о картах интерфейсов см . в техническом примечание 38.

Требования

Заголовок: afxwin.h

EVENT_DELEGATE_ENTRY

Создает запись на карте делегата.

Синтаксис

EVENT_DELEGATE_ENTRY(MEMBER, ARG0, ARG1);

Параметры

ЧЛЕН
Метод обработчика событий, присоединенный к элементу управления.

ARG0
Первый аргумент метода управляемого обработчика событий, например Object^.

ARG1
Второй аргумент метода обработчика управляемых событий, например EventArgs^.

Замечания

Каждая запись на карте делегата соответствует делегату управляемого обработчика событий, созданному MAKE_DELEGATE.

Пример

В следующем примере кода показано, как использовать EVENT_DELEGATE_ENTRY для создания записи в карте делегатов для обработчика OnClick событий; также см. пример кода в MAKE_DELEGATE. Дополнительные сведения см. в статье "Практическое руководство. Приемник событий Windows Forms из собственных классов C++".

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

Требования

Заголовок: msclr\event.h

INTERFACE_PART

Используется между макросом BEGIN_INTERFACE_MAP и макросом END_INTERFACE_MAP для каждого интерфейса, который будет поддерживаться.

Синтаксис

INTERFACE_PART( theClass, iid, localClass)

Параметры

TheClass
Имя класса, содержащего схему интерфейсов. iid
IID, сопоставленный со встроенным классом. localClass
Имя локального класса.

Замечания

Он позволяет сопоставить идентификатор IID с членом класса, указанным классом и localClass.

Дополнительные сведения о картах интерфейсов см . в техническом примечание 38.

Требования

Заголовок: afxwin.h

MAKE_DELEGATE

Присоединяет обработчик событий к управляемому элементу управления.

Синтаксис

MAKE_DELEGATE( DELEGATE,  MEMBER) ;

Параметры

ДЕЛЕГАТ
Тип делегата управляемого обработчика событий, например EventHandler.

ЧЛЕН
Имя метода обработчика событий, присоединенного к элементу управления.

Замечания

Этот макрос создает делегат управляемого обработчика событий типа DELEGATE и имени MEMBER. Делегат управляемого обработчика событий позволяет собственному классу обрабатывать управляемые события.

Пример

В следующем примере кода показано, как подключить MAKE_DELEGATE OnClick обработчик событий к элементу управления MyControlMFC. Более подробное описание работы этого макроса в приложении MFC см. в статье "Практическое руководство. Приемник событий Windows Forms из собственных классов C++".

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

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

Требования

Заголовок: msclr\event.h

См. также

Практическое руководство. Получение событий Windows Forms из собственных классов C++
Практическое руководство. Добавление маршрутизации команд в элемент управления Windows Forms
Макросы и глобальные