Шаг 3: Добавление свойства в элемент управления

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

Появится диалоговое окно Добавить свойства для интерфейса , что позволяет вам ввести данные свойства, которые вы хотите добавить:

  1. В раскрывающемся списке типов свойств выберите короткий.

  2. Тип «Стороны» как имя свойства. Как вы измените поле Имя свойства , осуществление поле отображаются строки, которые будут добавлены в ваш файл IDL.

  3. Нажмите OK , чтобы завершить добавление свойства.

MIDL (программа, которая компилирует файлы .idl) определяет метода Get , который извлекает свойство и создать метод, который задает свойство. Когда MIDL компилирует файл, он автоматически определяет эти два метода в интерфейсе путем добавления put_ и get_ имени свойства.

Наряду с добавлением необходимые строки в IDL-файл, диалоговое окно Добавить свойства интерфейса также добавляет прототипы функций получить и поместить определения класса в PolyCtl.h и добавляет пустую реализацию PolyCtl.cpp.

Чтобы задать и получить свойство необходимо место для хранения его. От FileView, откройте PolyCtl.h и добавьте следующую строку в конце определения класса после m_clrFillColor определяется:

     короткий m_nSides
 

Теперь можно реализовать методы Get и поставить . get_SidesИ put_Sides PolyCtl.h были добавлены определения функций. Необходимо добавить код в PolyCtl.cpp для соответствия следующим:

 STDMETHODIMP CPolyCtl::get_Sides(short *pVal)
{
   * pVal = m_nSides;
   Возвращает значение S_OK;
}

STDMETHODIMP CPolyCtl::put_Sides(short newVal)
{
   Если (newVal gt; 2 & & newVal < 101)
   {
      m_nSides = newVal;
      Возвращает значение S_OK;
   }
   остальное
      возвращение Ошибка (_T ("форма должны иметь между 3 и 100 сторонами"));
}

get_SidesФункция просто возвращает текущее значение свойства стороны через pVal указателя. В put_Sides метод, вы убедитесь, пользователь устанавливает свойство стороны допустимым значением. Вам нужно больше чем 2 стороны, и так как вы будете хранить массив точек для каждой стороны позже, 100-это разумный предел для максимального значения. Если передается недопустимое значение функции ATL Ошибка используется для задания детали в интерфейс IErrorInfo . Это полезно, если ваш контейнер необходимы дополнительные сведения об ошибке, чем возвращенного HRESULT.

Последнее, что вам нужно сделать для инициализации является свойство m_nSides . Сделать треугольник фигура по умолчанию, добавив строку в конструктор в PolyCtl.h:

CPolyCtl()
{
   m_nSides = 3;
}

Теперь у вас есть свойство с именем стороны. Это не много использования до тех пор, пока вы делаете что-то с ним, так что дальше будет изменить рисунок код, чтобы использовать его.

Вернуться к шагу 2 |nbsp; К шагу 4

Index