Поиск: |
|
|
Все о программировании Для всех, кто интересуется программированием, всех кто знает или хочет научиться. |
|
Опции темы |
19.05.2008, 00:01 | Вверх #1 |
Новичок
Возраст: 38 Регистрация: 02.11.2003
Был(а) у нас: 19.05.2008 00:10
Сообщений: 30
Пол:
|
Visual C++, проблема: рисование + управление
Привет, ребята!
Пишу программу на Visual C++, суть - динамическое отображение процесса распространения диффузии (тепла) в пространстве. Динамическое - говорит само за себя, т.е., всё происходит в реальном времени. Раньше я никогда не программировал на Visual C++, но уже кое в чём разобрался, и, фактически, свою задачу решил. Но не до конца. Дело в том, что для отображения графики в режиме реального времени я использую: 1) класс CClientDC; от CPaintDC и всё что связано с OnPaint решительно отказался, так как перемещение экрана вызывает событие ON_WM_PAINT и автоматически вызывает перерисовку экрана; 2) тип данных clock_t. При запуске процесса я фиксирую старт, а затем, в цикле do {} while; ловлю момент времени, и в зависимости от константы периодичности, которую я устанавливаю в алгоритме сам, делаю инкремент. Т.е., таким образом я фактически создаю управляемый в реальном времени цик for. Проблема: в момент рисования, т.е. в течение времени, которое занимает прорисовка, я теряю доступ к меню и к панели управления. Таким образом, загибается моя мечта сделать что-то вроде удобного плэйера, состоящего из триады: Play, Pause, Stop. В моё ситуации Play и то - лишь один раз. "Блокада" окна заканчивается, когда завершается моя "анимация". Попытка перейти по меню в момент "анимации" заканчивается плачевно - программа просто зависает. Буду очень благодарен, если кто-нибудь подскажет, что мне делать... Чувствую, что чего-то просто недопонимаю. Нигде в Инете не смог отыскать ответа на свой вопрос... С уважением, Всеволод. |
19.05.2008, 03:28 | Вверх #2 |
Свой Человек
Возраст: 43 Регистрация: 26.06.2003
Был(а) у нас: 04.12.2009 03:11
Сообщений: 11,274
Пол:
|
Vsevolod,
если я правильно понял - тебе надо прописать кнопки внутри куска for или как минимум обращение к этим кнопкам, иначе у тебя не будет к ним доступа пока бежит цикл. |
|
|