Создание ActiveX-элементов средствами ATL. Добавление свойства

   
На этом шаге мы рассмотрим алгоритм добавления свойства NumberOfSymbols.

   
Добавим в класс элемента специальное свойство NumberOfSymbols.

  • Добавление свойства NumberOfSymbols.
  • В ClassView щелкните правой кнопкой мыши элемент интерфейса IATLBandit и в
    контекстном меню выберите Add Property.


    Рис.1. Добавление свойства

  • В диалоговом окне Add Property To Interface выберите short в качестве типа свойства.
    В поле Property Name введите NumberOfSymbols.


    Рис.2. Окно Add Property To Interface

  • Щелкните OK, чтобы создать функции, реализующие это свойство.
  • Как Вы помните, работая с ATL, требуется определить перемменную-член, в которой будет хранится значение,
    а также реализовать функции Get и Put для обмена данными с этой переменной.

  • Реализация свойства NumberOfSymbols.
  • Создайте в классе CATLBandit защищенную переменную-член m_numberOfSymbols типа short.
    Рис.3. Добавление переменной m_numberOfSymbols
  • В ClassView раскройте интерфейс IATLBandit в узле класса CATLBandit, чтобы найти
    функции get_NumberOfSymbols() и put_NumberOfSymbols(). Напишите эти функции, как показано в
    следующем коде:

    STDMETHODIMP CATLBandit::get_NumberOfSymbols(short *pVal) 
    {
      *pVal = m_numberOfSymbols;
      return S_OK; 
    }
    
    STDMETHODIMP CATLBandit::put_NumberOfSymbols(short newVal)
     {
      newVal = newVal < 3 ? 3 : newVal;
      newVal = newVal > 7 ? 7 : newVal;
      m_numberOfSymbols = newVal; 
      SetDirty(TRUE);
      return S_OK; 
    }
    


Рис.4. Функция get_NumberOfSymbols()

   
Заметьте, что функция put_NumberOfSymbols() проверяет корректность задания значения свойства
NumberOfSymbols. Обратите также внимание на обращение к функции SetDirty(). Она должна вызываться
при изменении постоянного свойства, чтобы контейнер мог запросить пользователя о подтверждении или отказе от сохранения
нового состояния элемента управления. После создания страницы свойств, позволяющей изменять их, мы напишем
код, обеспечивающий постоянство свойства NumberOfSymbols.

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

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий