only one control can have focus at one time, so if you are typing in an edit, the other control will not receive keyboard events!
If you're typing in an edit box, then it probably shouldn't track keyup/keydown either. I guess there may be a reason to do so in an edit box, but I'm thinking that most uses would be game related or similar and typing wouldn't be when you'd need to track the keypresses. I don't know... it was just a thought. I don't know much about how things work in the background, so I was just offering a suggestion.
It could be useful to have some kind of click once on a control to use (like you'd click a "window" -- whatever control you want to create that window with -- it will activate and then track keypresses). Then, if you click somewhere else, it will no longer track keypresses. For a game, this would let you run the game through this "window". It would be similar to how some activex and other scripting languages have you click on the window to use the control on a website. You could then have it also check the current mouse position only while it's over that "window" and when it's over it, you could have it draw in something such as crosshairs or a different mouse pointer. It's just too bad you can't hide the real mouse pointer. To point it out, I'm thinking of this window as if it were a picwin since that's where you could draw stuff. But it could really be various controls... even an icon. You just wouldn't be able to draw stuff in it that way.
Something like that could let you create a racing game inside a dialog and have arrow keys control your car as just one example. I know you can do this outside of a dialog. But inside a dialog could be nice if it was possible.