Subj : MDI To : borland.public.cpp.borlandcpp From : "davidwilliams" Date : Tue Nov 25 2003 08:04 pm Hello I am writing an app using the API functions directly and I am using MDI children to display data from the COM port, as a test I am inputting keyboard data and displaying it on the children I am finding however that all the keyboard focus except the menu selectors in the WM_COMMAND message handler are being directed to the client window the only way to get the keyboard focus is to default: return DefWindowProc(hwnd, message, wParam, lParam); inside the switch() of frameWindowProc() if I change it to: default: return DefFrameProc(hwnd,hclientwnd,message, wParam, lParam); as it should be I get no response to the WM_CHAR case inside of the frameWindowProc() my main message processing loop in winmain() is: while(GetMessage(&msg, NULL,0,0)>0) { if(!TranslateMDISysAccel(hclientwnd, &msg) && !TranslateAccelerator(hframewnd,hAccel, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; which all seems okay as I said above the accelerators are all being processed the problem seems to be the WM_CHAR isn't being processed. Am I approaching this problem incorrectly, ie am I trying to send key strokes to the wrong window for an MDI app?. thamks Dave. .