Поиск:

Вернуться   Форум > Технический раздел > Programming > Все о программировании

Все о программировании Для всех, кто интересуется программированием, всех кто знает или хочет научиться.

Ответ
 
Опции темы
Старый 19.05.2008, 00:01 Вверх     #1
Vsevolod
Новичок
 
Аватар для Vsevolod
 
   Возраст: 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 и то - лишь один раз. "Блокада" окна заканчивается, когда завершается моя "анимация".
Попытка перейти по меню в момент "анимации" заканчивается плачевно - программа просто зависает.

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

С уважением, Всеволод.
Vsevolod вне форума   Ответить с цитированием
Старый 19.05.2008, 03:28 Вверх     #2
Frutti
Свой Человек
 
Аватар для Frutti
 
   Возраст: 43
Регистрация: 26.06.2003
Был(а) у нас: 04.12.2009 03:11
Сообщений: 11,274

Пол: Мужской
По умолчанию

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

Frutti вне форума   Ответить с цитированием
Ответ


Метки
времени, проблема, тебе, если



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT, время: 09:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Follow FriendsForumCom on Twitter liveinternet.ru Рейтинг@Mail.ru