IPolyCtl
Это интерфейс, содержащий пользовательские методы и свойства. Самый простой способ для добавления свойства к данному интерфейсу заключается в его правой кнопкой мыши в контекстного и выберите пункт Добавить свойство.
Появится диалоговое окно Добавить свойства для интерфейса , что позволяет вам ввести данные свойства, которые вы хотите добавить:
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