Шаг 210.
Среда программирования Visual C++.
Создание элементов управления в проекте ATL COM

    На этом шаге мы рассмотрим алгоритм создания элемента управления средствами ATL.

    Начиная с этого шага мы снова создадим элемент управления OneArmedBandit, но на этот раз с помощью ATL. Это позволит сравнить два инструмента разработки - MFC и ATL - и оценить, какая технология больше подходит в каждом конкретном случае.

    Как всегда при работе с ATL, первым делом надо создать ATL-npoект, после чего с помощью ATL Object Wizard мы добавим в него отдельные СОМ-объекты. Ниже мы создадим проект библиотеки DLL, в которой будет находиться элемент управления, а затем вставим туда свой ActiveX-элемент, созданный на основе ATL.

    В ClassView Вы увидите, что мастер создал интерфейс IATLBandit и класс реализации CATLBandit. CATLBandit является производным от ATL-класса CComControl (впрочем, как и многие другие).


Рис.3. Содержимое ClassView

    Откройте файл ATLBandit.h и найдите карту СОМ-объекта: класс CATLBandit поддерживает все интерфейсы, требуемые ActiveX-контейнерам.

    Сразу за СОМ-картой находится карта свойств:

BEGIN_PROP_MAP(CATLBandit)
	PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
	PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
	PROP_ENTRY("BackColor", DISPID_BACKCOLOR, CLSID_StockColorPage)
	PROP_ENTRY("ForeColor", DISPID_FORECOLOR, CLSID_StockColorPage)
	// Example entries
	// PROP_ENTRY("Property Description", dispid, clsid)
	// PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()

    Создавая карту свойств, ATL облегчает реализацию их постоянства. Как видите, в приведенном выше коде строки стандартных свойств (включая размеры элемента управления) уже добавлены в карту свойств. Обратите внимание, что макросы PROP_ENTRY позволяют ассоциировать страницу свойств со свойством и что страница стандартных свойств, цветов ForeColor и BackColor уже определена.

    Текст приложения можно взять здесь (20,1 Кб).

    На следующем шаге мы рассмотрим добавление свойства.




Предыдущий шаг Содержание Следующий шаг