I'm using MFC and I have a main window with a splitter and two views, and inside one of the views I have a Tab Control. Inside the tab control, I dynamically create several dialogs as child windows of the tab. Inside one of the dialogs, I have created a grid window (custom built) and I'm trying to receive WM_KEYDOWN messages in the grid window. The grid window recieves WM_KEYUP messages fine, but when I try to handle the WM_KEYDOWN messages in the grid window, everything gets kind of screwed up. When I press any alpha-numeric keys, I get receive the WM_KEYDOWN message, but it beeps. When I press space, control, shift, caps lock, F1 - F12 and most other keys, there is no beep and the WM_KEYDOWN message is sent. When I press the arrow keys, nothing happens, except when I release the key, I get a WM_KEYUP message. Has anyone run into this before? It's almost like another window is grabbing the input before the grid window, which has the focus, gets a chance to proccess the message. I'm totally stuck here. Help please?!