Vfp 文档 一些经典编程文章 可供初学者学习编程时使用

源代码在线查看: 隐藏vfp的主窗口.txt

软件大小: 265 K
上传用户: xiao11tian
关键词: Vfp 编程 文档 初学者
下载地址: 免注册下载 普通下载 VIP

相关代码

				隐藏Visual FoxPro的主窗口 
				  
				蒋清野 
				
				(清华大学土木工程系) 
				
				在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 
				
				  
				
				* 定义按钮CloseButton 
				
				DEFINE CLASS CloseButton AS COMMANDBUTTON 
				
				PROCEDURE CLICK 
				
				* 将Visual FoxPro主窗口恢复到原来的位置 
				
				_SCREEN.LEFT = THISFORM.oleft 
				
				* 释放窗口HideDeskTop 
				
				THISFORM.RELEASE 
				
				ENDPROC 
				
				ENDDEFINE 
							

相关资源