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) EditorGadget(1,10,10,100,100,0) EditorGadget(2,120,10,100,100,0) lpPrevFunc = SetWindowLongPtr_(GadgetID(1),#GWL_WNDPROC,@RichEditProc()) Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf