
- •Что такое ole
- •Что такое ActiveX?
- •Что включает в себя ActiveX?
- •Что такое элемент управления ActiveX?
- •Что содержит класс модуля элемента: cFirstApp? Кратко опишите функции в классе.
- •Что содержит класс элемента: cFirstCtrl?
- •Что делает функция OnDraw?
- •Для чего используется guid?
- •Каким образом можно добавить новый метод?
Что делает функция OnDraw?
Метод OnDraw вызывается операционной системой, когда элемент управления должен быть перерисован.
Она вызывается в тех случаях, когда элемент получает требование перерисовать себя. Эта функция, создаваемая ActiveX ControlWizard, она рисует эллипс!
Что содержит класс страницы свойств: CfirstPropPage?
Страница свойств представляет собой отдельную вкладку диалогового окна, открывающего доступ к некоторым свойствам элемента. Кроме того, страница свойств сама является СОМ-объектом. Элемент может занести на страницу свойств любую информацию (хотя обычно на ней содержатся пары имен и значений свойств) и использовать столько страниц, сколько считает нужным. ActiveX ControlWizard создает всего одну пустую страницу свойств. Он оформляет ее в виде класса MFC, производного от COlePropertyPage. В нашем случае страница называется CFirstPropPage.
Страницы свойств - это OLE-объекты, которые дают пользователю возможность просматривать и изменять свойства элемента управления OLE. Страницы свойств содержат один или несколько стандартных диалоговых элементов управления, связанных с различными свойствами. Страницы свойств отображаются в виде модальных или немодальных диалоговых окон с закладками, причем каждой странице соответствует своя закладка. Чтобы отобразить на экране страницы свойств элемента управления, необходимо вызвать его “глагол свойств” - OLEVERB_PROPETIES.
По умолчанию средство MFC ActiveX ControlWizard создает одну страницу свойств, за работу которой в рассматриваемом случае OLE-элемента управления отвечает класс CFirstPropPpg.
Объявление класса
Класс страницы свойств CFirstPropPage объявляется в файле FirstPpg.h. Этот класс сгенерирован при создании проекта. Он реализует одну пустую страницу свойств. Этот класс является прямым потомком класса COlePropertyPage , базового класса всех страниц свойств.
Класс CFirstPropPage является OLE-объектом. Поэтому ему необходима фабрика классов, генерацию которой обеспечивает макрос DECLARE_OLECREATE_EX. Фабрика классов и генерация CLSID для класса страницы свойств реализована в файле FirstPpg.cpp при помощи макроса IMPLEMENT_OLECREATE_EX.
Для чего используется guid?
Глобальный идентификатор
Каким образом можно добавить новый метод?
Чтобы добавить в класс элемента управления метод автоматизации – метод, который может быть вызван в контейнере, – следует вызвать ClassWizard и выбрать вкладку “OLE Automation”. В появившемся окне следует выбрать кнопку “Add Method”. Затем в диалоговом окне в полях “External name” и “Internal name” ввести имя нового метода (внешнее и внутренне имена могут отличаться, внутреннее имя метода используется в классе элемента, при помощи внешнего имени контейнер может вызывать метод). Возвращаемое методом значение типа выбирается в списке “Return type”. После того, как ClassWizard создаст остов метода, программист может добавить в него код.
ClassWizard наряду с созданием остова метода добавляет в объявление класса описание созданного метода, а в схему диспетчеризации класса (в файле реализации класса) добавляет соответствующий макрос. В раздел интерфейса диспетчеризации odl-файла в его подраздел methods ClassWizard добавит строку, связывающую с методом идентификатор диспетчеризации.
Для определения реакции элемента управления на действия пользователя следует добавить в класс обработчик сообщения. Для построения остовов обработчиков сообщений следует вызвать ClassWizard и выбрать вкладку “Message Map”. Выбрав в поле “Class name” класс, а в поле “Message” необходимое сообщение, следует нажать кнопку “Add Function”. ClassWizard не только добавит в класс объявление созданных методов и их остовы, но и в таблицу обрабатываемых сообщений вставит соответствующие строки.