EnableExplicit Global lpPrevFunc Procedure RichEditProc(hWnd,uMsg,wParam,lParam) Select uMsg Case #WM_CHAR If wParam = #VK_TAB SetFocus_(GetWindow_(hWnd,#GW_HWNDNEXT)) ProcedureReturn 1 EndIf EndSelect ProcedureReturn CallWindowProc_(lpPrevFunc,hWnd,uMsg,wParam,lParam) EndProcedure If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) StringGadget(1,10,10,100,20,"",0) StringGadget(2,10,40,100,20,"",0) lpPrevFunc = SetWindowLongPtr_(GadgetID(1),#GWL_WNDPROC,@RichEditProc()) Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf