I do not remember already how to do that in MFC, but in WinAPI one must do something along the lines of:
BOOL rv;
MSG msg = {};
while (0 != (rv = GetMessage(&msg, 0, 0, 0)))
{
if (-1 == rv)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}