Тема: Обновление данных

Ситуация следующая: библиотека arx должна считывать данные из файла и располагать их на схеме AutoCAD. Причем считывание осуществляется периодически, то есть с помощью таймера. Было написано консольное приложение, которое
изменяет данные в файле через определенный период времени. Так вот... обновление на схеме AutoCAD происходит, но только если все время двигать мышью, если ею не двигать то данные остаются неизменными. Но на самом деле изменения
происходят, так как если подвигать мышью спустя некоторое время то цифры уходят на несколько тактов вперед (за каждый цикл данные(числа) меняются на +1). Для вызова команды обновления рисунка (отображения данных) я использовал SetTimer(0,0,2000,Timerproc). Как видно я передаю 0 в качестве первого параметра (дескриптора окна). Я пробовал передавать дескриптор, получаемый с помощью GetActiveWindow. Но не помогает. (Как я помимаю в данном случае эта функция должна возвращать дескриптор окна AutoCAD). Пробовал вызывать GetActiveWindow и в самой команде при первом ее запуске и в initApp()...Объясните что происходит? И к какому (если это надо) окну приписать таймер чтобы все работало без движений мыши? Спасибо.

Re: Обновление данных

adsw_acadMainWnd() - это дескриптор главного окна AutoCAD

Re: Обновление данных

Попробуй вставить:

acedGetAcadDwgView()->PostMessage(WM_MOUSEMOVE,0,0);

в тело функции обработки таймера.

Re: Обновление данных

Спасибо Вам большое, вы опять мне помогли!!!

Re: Обновление данных

Кстати, насчет обновления данных:
когда мне требуется немедленно обновить измененные данные на чертеже я использую вот такой фрагмент:
AcDbDatabase* pCurrentDb=
acdbHostApplicationServices()->workingDatabase();
pDoc=acDocManager->document(pCurrentDb);       
pDoc->transactionManager()->flushGraphics();
pDoc->cDoc()->UpdateAllViews(0);
А еще можно использовать стандартную функцию
acedUpdateDisplay();