PDA

Просмотр полной версии : Visual C++, проблема: рисование + управление


Vsevolod
19.05.2008, 00:01
Привет, ребята!
Пишу программу на Visual C++, суть - динамическое отображение процесса распространения диффузии (тепла) в пространстве. Динамическое - говорит само за себя, т.е., всё происходит в реальном времени.
Раньше я никогда не программировал на Visual C++, но уже кое в чём разобрался, и, фактически, свою задачу решил. Но не до конца. Дело в том, что для отображения графики в режиме реального времени я использую:

1) класс CClientDC; от CPaintDC и всё что связано с OnPaint решительно отказался, так как перемещение экрана вызывает событие ON_WM_PAINT и автоматически вызывает перерисовку экрана;

2) тип данных clock_t. При запуске процесса я фиксирую старт, а затем, в цикле do {} while; ловлю момент времени, и в зависимости от константы периодичности, которую я устанавливаю в алгоритме сам, делаю инкремент. Т.е., таким образом я фактически создаю управляемый в реальном времени цик for.

Проблема: в момент рисования, т.е. в течение времени, которое занимает прорисовка, я теряю доступ к меню и к панели управления. Таким образом, загибается моя мечта сделать что-то вроде удобного плэйера, состоящего из триады: Play, Pause, Stop. В моё ситуации Play и то - лишь один раз. "Блокада" окна заканчивается, когда завершается моя "анимация".
Попытка перейти по меню в момент "анимации" заканчивается плачевно - программа просто зависает.

Буду очень благодарен, если кто-нибудь подскажет, что мне делать... Чувствую, что чего-то просто недопонимаю. Нигде в Инете не смог отыскать ответа на свой вопрос...

С уважением, Всеволод.

Frutti
19.05.2008, 03:28
Vsevolod,
если я правильно понял - тебе надо прописать кнопки внутри куска for или как минимум обращение к этим кнопкам, иначе у тебя не будет к ним доступа пока бежит цикл.