|
|
|
PeekMessage
|
|||
|---|---|---|---|
|
#18+
Основной цикл программы: [quote] while(TRUE) { // test if there is a message in queue, if so get it if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { // translate any accelerator keys TranslateMessage(&msg); // send the message to the window proc DispatchMessage(&msg); } // end if } // end while [/quote] Я думаю, что таким образом из очереди событий изымается только одно событие и оно же обрабатывается, верно? Тогда если за один цикл событий приходит больше чем одно, то очередь будет просто заваленна событиями, что вовсе не гуд. Я прав? И ещё: события окну могут посылаться двумя способами: SendMessage и PostMessage. Если какая-то гадина пошлёт окошку событие SendMessage'эм, то программа прекратит делать то, что она делала, срочно обработает событие и продолжит делать то, что делала? А если послать два SendMessage'а подряд, при чём так, что второй придёт тогда, когда будет обрабатываться первый, то программа прекратит обрабатывать первый мэссэдж, начнёт обрабатывать второй, а когда закончит, продолжит обрабатывать первый? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2006, 20:23 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=347&tid=2030991]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 335ms |

| 0 / 0 |
