Макросы схем делегата и интерфейса
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
обработчик событий к элементу управления MyControl
MFC. Более подробное описание работы этого макроса в приложении 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
Макросы и глобальные