Well, you will need a message pump. As long as you can get a message pump running in your console app, then yeah, your solution sounds great. Can be tricky, because usually console apps aren't event driven. If concurrency is an issue for you, you might have to create a worker thread in which you house both the message pump and window. If concurrency isn't an issue, all you have to do is start a
while(GetMessage(...) { DispatchMessage(...) }
-loop, while you wait for the message.
You might also be interested in using message-only windows for your code.
http://msdn.microsoft.com/en-us/library/ms632599(VS.85).aspx#message_[
^]