|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Окт 9, 2003 05:03:01 В моей программе есть основной поток с GetMessage. Для show я запускаю новый поток с PeekMessage. И таймер отдельным потоком. Но show поток получает одно сообщение и со вторым выходит из цикла |
|
|
Дата: Окт 9, 2003 05:08:21 SolidCode А зачем такой изврат, если не секрет? Задержку появления окна делаем? Суть проблемы не совсем ясна. Кусок кода помог бы, наверное... |
|
|
Дата: Окт 9, 2003 05:34:54 Как PeekMessage выглядит? DoEvents proc @@peek: xor eax, eax invoke PeekMessage, ADDR msg, eax, eax, eax, PM_REMOVE test eax, eax jz @@done mov eax, OFFSET msg push eax invoke TranslateMessage, eax call DispatchMessage jmp @@peek @@done: ret DoEvents endp |
|
|
Дата: Окт 15, 2003 04:23:27 Я переделал прогу нынче так, чтобы она работала в режиме (в окне) Едит (с GetMessage) или в Show (с PeekMessage), так как они не нужны одновременно. Эту тему, пожалуй, можно закрыть. А вообще PeekMessage выглядит так:
align 16
@StartLoop:
invoke PeekMessage,addr msg,0,0,0,PM_REMOVE
test eax,eax
jnz @onNotIdle
;.....................
push hShowWnd
push @StartLoop
jmp UpdateWindow
align 16
@onNotIdle:
lea eax,msg
cmp (MSG ptr [eax]).message,WM_QUIT
je @ExitLoop
push eax
invoke TranslateMessage,eax
push @StartLoop
jmp DispatchMessage
;with this trick in DispatchMessage upon RET instruction execution will go
;straight to @StartLoop without having to make an extra jump
@ExitLoop:
|
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.104 |