Ok, after testing F10 with my code, it show the same symptome as you said, the game freeze. Im pretty sure this can be solve in the message loop however.
Gonna do some more tests.
Edit: i was talking to Yewbie:
Its going to deal with your message pump, you need to do a message peek instead of waiting for a message, any chance you could post your current windows message pump?
edit here is a decent message pump:for(;;)
//look for a message
//check that we arent quitting
Program_Running(); //This is where you want to do all of your applications logic.
How does the for loop ever stop with this code???