>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 >