obj = CREATEOBJECT("Tform") obj.Show(1) DEFINE CLASS Tform As Form #DEFINE WM_LBUTTONDOWN 0x0201 #DEFINE GWL_WNDPROC -4 PROTECTED hOrigProc, hWindow hOrigProc=0 hWindow=0 Width=500 Height=300 Caption="Modal Form" AutoCenter=.T. PROCEDURE Activate IF THIS.hWindow = 0 DECLARE INTEGER GetWindowLong IN user32; INTEGER hWindow, INTEGER nIndex THIS.hWindow = _screen.HWnd THIS.hOrigProc = GetWindowLong(THIS.hWindow, GWL_WNDPROC) = BINDEVENT(THIS.hWindow, WM_LBUTTONDOWN, THIS, "OnMouseDown") ENDIF PROCEDURE OnMouseDown(hWindow as Integer,; nMsgID as Integer, wParam as Integer, lParam as Integer) LOCAL nReturn nReturn=0 DO CASE CASE nMsgID=WM_LBUTTONDOWN LOCAL nX, nY nX = BITAND(lParam, 0x0000ffff) nY = BITRSHIFT(BITAND(lParam, 0xffff0000),16) ACTIVATE SCREEN ? nX, nY OTHERWISE * pass control to the original window procedure nReturn = CallWindowProc(THIS.hOrigProc, THIS.hWindow,; m.nMsgID, m.wParam, m.lParam) ENDCASE RETURN nReturn ENDDEFINE