Поделиться через


Элементы управления ActiveX в MFC. Реализация расширенных свойств

В этом разделе описываются разделы, относящиеся к реализации расширенные свойства в элемент управления ActiveX.

  • Только для чтения, доступные только на запись свойства

  • Возвращение коды ошибок из свойства

Только для чтения, доступные только на запись свойства

Мастера добавления свойства предоставляет быстрый и удобный метод для реализации только для чтения или доступные только на запись свойства для элемента управления.

Реализовывать только для чтения или доступное только на запись свойство

  1. Загрузите проект элемента управления.

  2. В представлении классов разверните узел библиотеки элемента управления.

  3. Щелкните правой кнопкой мыши узел интерфейса для элемента управления (второго узла узла библиотеки), чтобы открыть контекстное меню.

  4. В контекстном меню щелкните Добавить, а затем щелкните Добавить свойство.

    Это окно Мастер добавления свойства.

  5. В поле Имя свойства введите имя свойства.

  6. В поле Тип реализации, щелкните Get/set методы.

  7. В окне свойство Type выберите нужный тип свойства.

  8. Если требуется свойство только для чтения, снимите устанавливается имя функции. Если требуется доступное только на запись свойство, снимите имя функции получения.

  9. Нажмите кнопку Готово.

После этого мастера добавления свойства описание функциональных возможностей SetNotSupported или GetNotSupported в записи схемы подготовки к отправке вместо — набора получает или функцию.

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

Если свойство быть условно доступный только для чтения или доступные только на запись (например, только если элемент управления работает в указанном режиме), то можно предоставить набор или получить функции, как обычно, и вызовите функцию SetNotSupported или GetNotSupported при необходимости. Примеры.

void CMyAxUICtrl::SetMyProperty(SHORT newVal)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   if (m_bReadOnlyMode)   //  some control-specific state
   {
      SetNotSupported();
   }
   else
   {
      m_iPropVal = newVal;   //  set property as normal
      SetModifiedFlag();
   }
}

Этот пример кода вызывает SetNotSupported если элемент данных m_bReadOnlyModeTRUE. Если ЛОЖЬ, затем свойству присваивается новое значение.

Возвращение коды ошибок из свойства

Указать, что произошла ошибка попытка получить или задать свойство, используйте функцию COleControl::ThrowError, которая принимает SCODE (код состояния) в качестве параметра. Можно использовать предопределенное SCODE или укажите одно из. Для списка предопределило SCODE и инструкции для определения пользовательского SCODE s, см. в разделе Обработка ошибок в коде элемента управления ActiveX в элементах управления ActiveX статьи: Дополнительные разделы.

Вспомогательные функции существуют самого общего предопределенного SCODE s, например COleControl::SetNotSupported, COleControl::GetNotSupported и COleControl::SetNotPermitted.

Примечание

   если используется, чтобы ThrowError только для средство возврат ошибки из свойства получает или задана функция или метод автоматизации.Это единственные времени, соответствующий обработчик исключений будет в стеке.

Дополнительные сведения об исключениях отчета в других областях кода см. в разделе COleControl::FireError и Обработка ошибок в коде элемента управления ActiveX в элементах управления ActiveX статьи: Дополнительные разделы.

См. также

Ссылки

Класс COleControl

Основные понятия

Элементы управления ActiveX MFC

Элементы управления ActiveX в MFC. Свойства

Элементы управления ActiveX в MFC. Методы