如何隐藏Visual FoxPro 6的主窗口?

 我来答
百度网友d18cdac08
2006-03-01 · TA获得超过987个赞
知道小有建树答主
回答量:410
采纳率:0%
帮助的人:570万
展开全部
隐藏Visual FoxPro的主窗口
程序设计中,经常令程序员大感头疼的就是Visual FoxPro的主窗口。事实上,很多应用程序需要使用自己设计的主窗口代替Visual FoxPro的主窗口。在Visual FoxPro的帮助文件中指出,内存变量_Screen(也就是主窗口对象)具有Hide方法和Visual属性,因此我们希望能够使用_Screen.Hide或者是_Screen.Visible=.F.语句来隐藏Visual FoxPro的主窗口。但是事实证明,这两个语句都没有能够达到我们的目的。
这种情况是由于Visual FoxPro的一个设计缺陷造成的。当一个表单或者是一个表单集被隐藏起来时,上一个被激活的对象将被重新激活,如果已经没有其他事先被激活的对象,Visual FoxPro的主窗口将被激活。如果_Screen.Hide或者是_Screen.Visible=.F.语句能够生效的话,那么在当前的Visual FoxPro应用程序中将没有任何被激活的对象。因此,主窗口对象_Screen的Hide方法和Visual属性实际上是无效的。

值得庆幸的是,主窗口对象_Screen还具有Top和Left等其他属性。虽然我们不能够真正的清除主窗口对象,但是可以调整主窗口在屏幕上的位置。如果我们把Visual FoxPro的主窗口搬到屏幕以外,是不是可以获得我们所需要的效果呢?以下的这段程序就是根据这个思路编写的,它不但很好地将Visual FoxPro的主窗口隐藏了起来,还可以在需要的时候把它重新找回来。

* 创建窗口HideDeskTop

frmHideDesktop = CREATEOBJECT("HideDeskTop")

frmHideDesktop.SHOW(1)

* 定义窗口HideDeskTop

DEFINE CLASS HideDeskTop AS FORM

TOP = 17

LEFT = 24

DESKTOP = .T.

CAPTION = "隐藏Visual FoxPro主窗口的示例程序"

MDIFORM = .T.

oleft = .F. && 变量oleft存储Visual FoxPro主窗口的左位置

* 在窗口HideDeskTop添加按钮HideShow

ADD OBJECT cmdHideShow AS HideShow WITH ;

TOP = 156, ;

LEFT = 175, ;

HEIGHT = 29, ;

WIDTH = 150, ;

CAPTION = "隐藏主窗口", ;

NAME = "Command2"

* 在窗口HideDeskTop添加按钮CloseButton

ADD OBJECT cmdClose AS CloseButton WITH ;

TOP = 196, ;

LEFT = 175, ;

HEIGHT = 29, ;

WIDTH = 150, ;

CAPTION = "关闭本程序", ;

NAME = "cmdClose"

ENDDEFINE

* 定义按钮HideShow

DEFINE CLASS HideShow AS COMMANDBUTTON

PROCEDURE CLICK

IF THIS.CAPTION = "隐藏主窗口"

THIS.CAPTION = "显示主窗口"

* 存储Visual FoxPro主窗口的左位置

THISFORM.oleft = _SCREEN.LEFT

* 将Visual FoxPro主窗口移到屏幕以外

_SCREEN.LEFT = -10000

ELSE

THIS.CAPTION = "隐藏主窗口"

* 将Visual FoxPro主窗口恢复到原来的位置

_SCREEN.LEFT = THISFORM.oleft

ENDIF

ENDPROC

ENDDEFINE
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式