C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 3 - Пользовательские свойства / ActiveX по шагам / Приложение

Шаг 3 - Пользовательские свойства

В прошлый раз мы с Вами создали переменную m_string. Только использование этой переменной не настоящее. То есть, переменная должна уметь сохранять своё значение в контейнере и при создании нового элемента должна устанавливать его по умолчанию. У нас она только устанавливается по умолчанию и всё. Ну и рисуется еще.

Открывайте наш проект. Переходите на ClassView. Это так, чтобы видеть. Выбирайте меню View, а потом ClassWizad. Нас интересует вкладка Automation. Выбирите кнопку Add property, что значит добавить свойство. И заполняем как приведено ниже:

3_1.gif (4910 b)

Теперь нам необходимо закоментировать нашу переменную m_string:

// Dispatch and event IDs
public:
	//CString m_string;

Так как она создана вот здесь:

// Dispatch maps
	//{{AFX_DISPATCH(CDMyActive1Ctrl)
	CString m_string;
	afx_msg void OnMyTextChanged();
	//}}AFX_DISPATCH
	DECLARE_DISPATCH_MAP()

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

Следующее действие - обеспечить объекту живучесть. Объекты не имеют функцию Seliarize(). Надо научить его сохранять данные как часть приложения контейнера и восстанавливать при открытии документа. Это реализуется методом DoPropExchange(). Специальные макросы типа PX_type позволяют организовать этот обмен. Откройте функцию DoPropExchange() и измените код.

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

	PX_String(pPX,"MyText",m_string);
}

Вот мы и создали настоящее свойство. В следующих шагах мы его протестируем на примере VBA.


Загрузить проект | | |
Автор Каев Артем.
[AD]