"ByeongSik Jeon" <bsjeon(a)hanmail.net> wrote:
+ while (TRUE) + { + if ( PeekMessage(&msg, 0, 0, 0, PM_REMOVE) ) + { + struct message posted_msg; + + msg_count++; + + trace("posted message[%d]: %p, %04x, %08lx, %08lx\n", + msg_count, msg.hwnd, msg.message, msg.wParam, msg.lParam); + + posted_msg.message = msg.message; + posted_msg.flags = posted|wparam|lparam; + posted_msg.wParam = msg.wParam; + posted_msg.lParam = msg.lParam; + add_message(&posted_msg); + + TranslateMessage(&msg); + DispatchMessage(&msg); + + if ( msg.message == WM_CHAR && msg.wParam == VK_RETURN ) + break; + } + }
You need to fetch all available messages, not just the selected ones. In order to do that replace 'while (TRUE)' loop by the 'while (PeekMeessage())' one, and as I pointed out earlier add_message() should be done only inside of the message proc. So the whole code above should be simplified to just while (PeekMeessage(&msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } -- Dmitry.