Re: более общий вопрос о создании MFC ActiveX контрола (+)
От: Constructor  
Дата: 17.10.02 14:30
Оценка:
Здравствуйте ICBa, Вы писали:

ICB>Значит делаю я проект типа "MFC ActiveX control".


ICB>Там есть функция:

ICB>void CTableCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
ICB>{
ICB>...
ICB>}

ICB>Которая, на сколько я понял, отрабатывает при запуске моего ActiveX-а.

ICB>В ней всё и рисуется, выводятся нужные данные и всё такое...

ICB>Еще есть у меня несколько публичных переменных и метод getData:


ICB>void CTableCtrl::getData(const VARIANT FAR& myData)

ICB>{
ICB>...
ICB>}

ICB>Который вызывается из контейнера и контейнер передает этому методу двумерный массив данных.

ICB>В этом же методе строится SafeArray в который пихаются переданные данные.

ICB>Хочется разделить программу по блокам таки образом, чтобы:

ICB>1. Сначала в ActiveX е что-то рисуется типа "Loading data..." и мы ждем пока getData получит данные и создаст SafeArray.

ICB>2. Потом мы вызываем некую третью функцию которая будет обрабатывать наш SafeArray массив и, в соответствии с данными в массиве, рисовать в ActiveX-е то что нам надо.


ICB>3. После обработки данных мы обрабатываем клики мышкой в нашем контроле и некоей четвертой функцией перерисовываем нужным образом некие области контрола.


ICB>Как это сделать?

ICB>В основном интересует реализация пункта 2.

ICB>P.S. На сколько я понял при создани SafeArray-а мы используем SafeArrayAccessData для получения указателя на массив данных, а после окончания работы с этим массивом нам надо сделать SafeArrayUnaccessData ?


ICB>Yuri.


А как Вы делаете контейнер? На основе диалогового окна? Почему бы не добавить методов 1)"Подготовиться к приему данных" и 2)"Завершение приема данных" и не вызывать из контейнера 1), getData, 2)?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.