На этом шаге мы рассмотрим алгоритм создания элементов ActiveX.
MFC упрощает процесс создания ActiveX-элементов. Мастер MFC ActiveX ControlWizard позволит Вам формировать полноценные ActiveX-элементы. Начиная с этого шага мы воспользуемся MFC для создания элемента управления на базе ActiveX, который предоставляет диспетчерский интерфейс, генерирует события и содержит страницу свойств, служащую для получения и установки его постоянных свойств.
Сейчас мы расскажем, как разработать ActiveX-элемент управления OneArmedBandit - программную версию игрового автомата, известного под названием "однорукий бандит". Элемент управления предоставляет единственный метод Рlау(), в обязанности которого входит генерация случайной комбинации картинок в трех окошках элемента. При совпадении картинок во всех трех окошках метод генерирует событие Jackpot ("джекпот"). Когда пользователь щелкает мышкой в области элемента, генерируется событие Click.
OneArmedBandit имеет страницу свойств, где пользователь может установить свойства ForeColor и BackColor и задать число картинок (свойство NumberOfSymbols), таким образом снижая или увеличивая вероятность выигрыша. Все три свойства сохраняемые.
Как всегда при работе с MFC, сначала требуется создать проект разработки ActiveX-элемента. Далее мы создадим проект OneArmedBandit.
Рис.1. Создание проекта OneArmedBandit
Рис.2. Классы проекта OneArmedBandit
Мастер ActiveX ControlWizard создает классы для реализации DLL-сервера, самого элемента управления и его страницы свойств. Класс COneArmedBanditCtrl - производный от MFC-класса COleControl. Он наследует все функциональные возможности классов CWnd и CCmdTarget и предоставляет огромное количество функций-членов для работы с ActiveX-элементами. Посредством этих функций Вы можете получать и устанавливать стандартные свойства, узнавать о свойствах окружения контейнера, генерировать стандартные события, реализовать постоянство свойств, а также выполнять ряд операций, связанных с размещением и отображением элемента управления.
Текст приложения можно взять здесь (22,0 Кб).
На следующем шаге мы рассмотрим определение интерфейса элемента управления.