Шаг 202.
Среда программирования Visual C++.
Определение интерфейса элемента управления. Постоянство свойств

    На этом шаге мы рассмотрим реализацию постоянства свойств.

    В MFC реализовать постоянство свойств очень просто. Функция COLeControl::DoPropExchange() сериализует свойства элемента управления в/из среды хранения, в качестве которой обычно выступает контейнер. Мастер ActiveX ControlWizard перегружает функцию DoPropExchange() Вашего класса элемента управления. MFC-каркас передает этой функции указатель на объект CPropExchange, инкапсулирующий контекст обмена свойств, в том числе его направление. Перегруженная DoPropExchange() вызывает версию этой же функции в базовом классе для сериализации стандартных свойств элемента управления. Сохранение же любых созданных Вами специальных свойств необходимо реализовывать отдельно.

    MFC предоставляет ряд функций, позволяющих сериализовать свойства самых разных типов. Имена функций начинаются с префикса РХ_.

    Чтобы сериализовать созданное свойство NumberOfSymbols функции DoPropExchange() класса элемента управления замените строку с комментарием // TODO вызовом PX_Short():

void COneArmedBanditCtrl::DoPropExchange(CPropExchange* pPX)
{
	ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
	COleControl::DoPropExchange(pPX);

	PX_Short(pPX, "NumberOfSymbols", m_numberOfSymbols, 3);

}


Рис.1. Сериализация свойства NumberOfSymbols

    Четвертый параметр функции PX_Short() задает значение свойства по умолчанию, которое используется, если PX_Short() не сможет извлечь значение этого свойства из среды хранения. Код, приведенный выше гарантирует, что свойство NumberOfSymbols нового экземпляра элемента управления по умолчанию получит значение 3.

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

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




Предыдущий шаг Содержание Следующий шаг