Siempre y cuando estes dentro de un FormSet o lo hagas desde un menu
cheka este ejemplo
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD _0k50sa3dr OF _MSYSMENU PROMPT "\<Window" COLOR SCHEME 3 ;
KEY ALT+W, ""
DEFINE PAD _0k50sa3ds OF _MSYSMENU PROMPT "E\<xit" COLOR SCHEME 3 ;
KEY ALT+X, ""
ON PAD _0k50sa3dr OF _MSYSMENU ACTIVATE POPUP Wwindow
ON SELECTION PAD _0k50sa3ds OF _MSYSMENU DO CloseDemo
DEFINE POPUP Wwindow MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF Wwindow PROMPT "\<Close" ;
SKIP FOR TYPE("_Screen.ActiveForm.Name")<>"C"
DEFINE BAR 2 OF Wwindow PROMPT "\<Open"
ON SELECTION BAR 1 OF Wwindow =_SCREEN.ACTIVEFORM.RELEASE()
ON SELECTION BAR 2 OF Wwindow DO OpenForm
PUBLIC ARRAY aoForms(1)
aoForms[1] = NEWOBJECT("frmdemo")
aoForms[1].SHOW
READ EVENTS
SET SYSMENU TO DEFAULT
CLEAR ALL
PROCEDURE OpenForm
DIMENSION aoForms(ALEN(aoForms)+1)
aoForms[ALEN(aoForms)] = NEWOBJECT("frmdemo")
aoForms[ALEN(aoForms)].SHOW
RETURN
PROCEDURE CloseDemo
CLEAR EVENTS
RETURN
DEFINE CLASS frmdemo AS FORM
CAPTION = "Demo Form"
NAME = "frmDemo"
ADD OBJECT cmdClose AS COMMANDBUTTON WITH ;
TOP = 200, ;
LEFT = 264, ;
HEIGHT = 27, ;
WIDTH = 84, ;
CANCEL = .T., ;
CAPTION = "Close", ;
DEFAULT = .T., ;
NAME = "cmdClose"
PROCEDURE cmdClose.CLICK
m.nOKButton=0
m.nInfo=64
=MESSAGEBOX("After this Form closes, select Exit from the menu to return to the Command Window",m.nInfo+m.nOKButton)
THISFORM.RELEASE
ENDPROC
PROCEDURE RELEASE
LOCAL m.nIndex
FOR m.nIndex = 1 TO ALEN(aoForms)
IF VARTYPE(aoForms[m.nIndex])=="O"
IF aoForms[m.nIndex]=THIS
aoForms[m.nIndex] = ""
EXIT
ENDIF
ENDIF
ENDFOR
ENDPROC
ENDDEFINE
Suerte