Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 1000 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Самостоятельная работа 18:

Создание собственного элемента управления ActiveX

Использование таблицы свойств элемента управления MyClock для удобства тестирования

Использование утилиты ActiveX Control Test Container для тестирования и просмотра элемента управления на этапе проектирования - это только один из возможных способов, и мы им уже пользовались. Другим способом доступа к компоненту на этапе проектирование с целью просмотра и установки свойств являются страницы свойств, реализованные в виде закладок окна свойств.

Если мы, как разработчик компонента, предусмотрим страницы свойств в нашем проекте, то появится возможность на этапе проектирования этого компонента просматривать и изменять его свойства визуальными средствами. Каждая страница свойств должна обеспечить доступ к набору взаимосвязанных свойств разрабатываемого компонента. Например, можно просмотреть и выбрать свойства цвета на странице свойств Colors, а свойства шрифта - на странице свойств Fonts.

Для ознакомления с такой возможностью включим в элемент управления две закладки окна свойств: Цвет и Шрифт. Закладка Цвет позволит нам просматривать и устанавливать введенные ранее свойства BackColor и ForeColor. Закладку Шрифт введем для практики, но она будет пустой, поскольку свойство шрифта мы в компонент не вводили. Перед тем, как написать код, реализующий появление закладок, убедимся через утилиту ActiveX Control Test Container, что элемент управления MyClock не имеет закладок Цвета и Шрифта.

  • Выполните команду главного меню оболочки Tools/ActiveX Control Test Container
  • В появившемся окне утилиты ActiveX Control Test Container выполните команду Edit/Insert New Control... (или нажмите на значке New Control с изображением руки)

  • В появившемся диалоговом окне Insert Control найдите наш элемент управления MyClock

  • Щелкните по кнопке OK и в клиентской области окна утилиты появится элемент управления MyClock
  • Выделите элемент управления (дайте ему фокус ввода) и через главное меню утилиты выполните команду Edit/Properties...

То же самое можно сделать через кнопку Properties панели инструментов (при выделенном компоненте она доступна).


  • Убедитесь, что в появившемся диалоговом окне свойств нет закладок Цвет и Шрифт

Страницы Цвет и Шрифт появятся тогда, когда мы введем в компонент соответствующий код. Закладка General (страница свойств General ) содержит сейчас следующий текст: "ЧТО ДЕЛАТЬ: Разместите в этом диалоге элементы управления свойствами компонента MyClock ".

Страница свойств General (закладка General ) должна содержать общие свойства, которые не относятся к другим страницам свойств. Позже мы настроим закладку General, а сейчас добавим к свойствам закладки Цвет и Шрифт.

  • Закройте утилиту без сохранения и вернитесь к проекту управляющего элемента.
  • Откройте файл MyClockCtrl.cpp и найдите в нем таблицу Property pages. Для этого воспользуйтесь окном поиска Find оболочки, вызвав его комбинацией клавиш CTRL+F

Автоматически сгенерированная мастером проекта таблица свойств имеет вид

Прежний код таблицы свойств
// Property pages
  
// TODO: Add more property pages as needed.  
// Remember to increase the count!
BEGIN_PROPPAGEIDS(CMyClockCtrl, 1)
  PROPPAGEID(CMyClockPropPage::guid)
END_PROPPAGEIDS(CMyClockCtrl)
  • Модифицируйте таблицу Property pages следующим образом
    Модифицированный код таблицы свойств
    // Property pages
      
    // TODO: Add more property pages as needed.  
    // Remember to increase the count!
    BEGIN_PROPPAGEIDS(CMyClockCtrl, 3)
      PROPPAGEID(CMyClockPropPage::guid)
      PROPPAGEID(CLSID_CColorPropPage)
      PROPPAGEID(CLSID_CFontPropPage)
    END_PROPPAGEIDS(CMyClockCtrl)

Начинает таблицу свойств макрос

BEGIN_PROPPAGEIDS(CMyClockCtrl, 3)

Первый параметр является именем класса элемента управления, второй определяет количество вкладок в окне свойств. По мере включения в компонент все новых страниц свойств этот параметр нужно увеличивать. Следующие три макроса определяют вкладки General и добавленные вкладки свойств Цвета и Шрифта. Последний макрос завершает таблицу свойств.

Чтобы убедиться, что закладки после модификации кода таблицы свойств появились в компоненте и позволят нам визуально его настраивать на этапе проектирования, снова испытайте компонент в утилите ActiveX Control Test Container. Для этого:

  • Постройте проект, выполнив команду Build/Build Solution
  • Выполните команду главного меню оболочки Tools/ActiveX Control Test Container
  • В появившемся окне утилиты ActiveX Control Test Container выполните команду Edit/Insert New Control... (или нажмите на значке New Control с изображением руки)

  • В появившемся диалоговом окне Insert Control найдите наш элемент управления MyClock

  • Щелкните по кнопке OK и в клиентской области окна утилиты появится элемент управления MyClock
  • Выделите элемент управления (дайте ему фокус ввода) и через главное меню утилиты выполните команду Edit/Properties...

То же самое можно сделать через кнопку Properties панели инструментов (при выделенном компоненте она доступна).


  • Убедитесь, что в открывшемся диалоговом окне появились две дополнительные закладки: Цвета и Шрифты

Закладка цвет позволяет в диалоговом режиме экспериментировать со свойствами компонента, определяющими цвет.


  • Завершите работу утилиты без сохранения
Александр Даниленко
Александр Даниленко
Стоит Windows 8 Pro, Visual Studio 2010 Express Edition .