|
|
|
Цикл в С++В....
|
|||
|---|---|---|---|
|
#18+
В программе реализован продолжительный цикл, как сделать чтоб можно было его прервать. Наприер хочу чтоб при нажатии "Alt+q", он останавливался. Как определить нажаты ли клавиши или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2003, 16:54 |
|
||
|
Цикл в С++В....
|
|||
|---|---|---|---|
|
#18+
Если ты в свой цикл вставишь вот такой блок, то приложении будет реагировать на все сообщения и события системы: MSG msg; while ( ::PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) ) { if ( !PumpMessage( ) ) { bDoingBackgroundProcessing = FALSE; ::PostQuitMessage( ); break; } } // let MFC do its idle processing LONG lIdle = 0; while ( AfxGetApp()->OnIdle(lIdle++ ) ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2003, 19:16 |
|
||
|
Цикл в С++В....
|
|||
|---|---|---|---|
|
#18+
Вас спасет Application->ProcessMessages(); :-))) Специально для проверки написал програмку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Все прекрасно работает. Прога написана на BCB6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2003, 11:27 |
|
||
|
Цикл в С++В....
|
|||
|---|---|---|---|
|
#18+
а как проверить нажата ли клавиша или нет. А то я сделал на подобие этого пр-рр: Cauchy но программа долго находится в цикле (пишет в БД и м.др.), и поймать когда она даст нажать на кнопку почти невозможно. Проще дождаться окончания цикла. Вот еслиб нажать и удержать кнопку на клаве, то вариант приемлемый. А почаще делать проверку на отмену не могу, чтоб не нарушить целостность функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2003, 13:11 |
|
||
|
Цикл в С++В....
|
|||
|---|---|---|---|
|
#18+
Переделал вот так (ввел задержку на 3 секунды): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. И так тоже работает. Прерывается не сразу, а когда переходит на условие цикла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2003, 13:24 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32354949&tid=2035651]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 318ms |

| 0 / 0 |
