The following example shows how to subclass an instance of an edit control in a dialog box. the subclass window procedure enables the Edit Control to receive all keyboard input, including the enter and Tab keys, whenever the control has the input focus.
Wndproc wporigeditproc; lresult apientry editboxproc (hwnd hwnddlg, uint umsg, wparam, lparam) {hwnd hwndedit; Switch (umsg) {Case wm_initdialog: // retrieve the handle to the Edit Control. hwndedit = getdlgitem (hwnddlg, id_edit); // subclass the Edit Control. wporigeditproc = (wndproc) setwindowlong (hwndedit, gwl_wndproc, (long) editsubclassproc); // continue the initialization procedure. // return true; Case wm_destroy: // remove the subclass from the Edit Control. setwindowlong (hwndedit, gwl_wndproc, (long) wporigeditproc); // continue the cleanup procedure. // break;} return false; unreferenced_parameter (lparam);} // subclass procedure lresult apientry editsubclassproc (hwnd, uint umsg, wparam, lparam) {If (umsg = wm_getdlgcode) return dlgc_wantallkeys; return callwindowproc (wporigeditproc, hwnd, umsg, wparam, lparam );}