![]() |
|
![]() ![]() ![]() |
|
Kylinar |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 1.2.2008 Репутация: нет Всего: нет |
Народ помогите, бьюсь уже 2-й день с какой-то чепухой, дело в том, что пишу програмку на контроллер WinCon в eVC++ 4 SADU_SACR SDK, до специфичных ему функций дело еще не дошло и поэтому тестирую в на стандартном эмуляторе.
Дело в том, что решил сделать таймер внизу экрана с помощью функции OnIdle, все работает пока не нажмешь на какую либо кнопку меню. Как только нажимаю все виснет, причем не всегда. Отладчик тормозной очень не смог с его помощью ничего найти... Вот мои функции:
Заранее благодарен. Это сообщение отредактировал(а) Kylinar - 1.2.2008, 17:40 |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
Kylinar, пользуйся кнопкой "Код" и отступами в коде. А также константами.
К примеру, что такое "40", которое встречается в куче мест кода, абсолютно не понятно. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
А почему таймер нужно делать на Idle? Не очень хорошая идея: Idle приходит только после сообщений, т.е. если никто ничего - твой таймер будет стоять... Почему бы таймер не повесить на WM_TIMER?
Кроме того, рисовать где ни попадя - тоже плохая идея. Рисовать нужно исключительно на WM_PAINT, а в остальных местах - просто сообщать, что хочешь перерисоваться, т.е. делать Invalidate. Если ты вешаешь все на Idle из тех соображений, чтобы не отнимать ресурсы у более важных функций, так можешь не заморачиваться - у таймера и WM_PAINT и так самый низкий приоритет. -------------------- ... |
|||
|
||||
Kylinar |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 1.2.2008 Репутация: нет Всего: нет |
Теперь я так и сделал - все нормаьно работает... Обидно только, что не нашел причину подвисания... С таймером тоже проблемки были: функцию SetTimer при отладке нормально проходил, а при запуске в эмуляторе - код ошибки деления на ноль??? Однако при использовании ::SetTimer(HWND,....) все работает как часики. ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |