|
|
|
Программы с длинными циклами
|
|||
|---|---|---|---|
|
#18+
Как сделать, чтобы при выполнении длинного цикла (на окне просто бежит ProgressBar) программа продолжала реагировать на внешние воздействия - перерисовывала окно (SetFocus), позволяла нажать на кнопки? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 13:56 |
|
||
|
Программы с длинными циклами
|
|||
|---|---|---|---|
|
#18+
Или вставить в цикл обработчик сообщений ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Но лучше запустить этот цикл в отделном треде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 14:07 |
|
||
|
Программы с длинными циклами
|
|||
|---|---|---|---|
|
#18+
да, позволять нажиматься кнопкам внутри цикла - это очень аккуратно писать такие штуки надо, как бы не "свалиться"... а то в обработчике нажатия кнопки обычно начинает жить совсем своя ветка программы :)), т.е. прогу надо усложнить малость, и по Cancel, скажем, просто выставить какой-нить флаг окончания цикла. если нужно, чтобы просто окно перерисовывалось, то просто вызывай периодически RefreshWindow (не требуется вытаскивать сообщения из очереди), или в цикле обработки сообщений фильтуй эти самые сообщения, т.е. вытаскивай не все, а только всякие WM_PAINT, WM_ERASEBACKGROUND, WM_NCPAINT... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2003, 19:08 |
|
||
|
|

start [/forum/search_topic.php?author=andy_s&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 727ms |
| total: | 925ms |

| 0 / 0 |
