| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 244 人关注过本帖
标题:怎么使用_SCREEN.VISIBLE=.F.
只看楼主 加入收藏
Wayneboc
Rank: 1
等 级:新手上路
帖 子:74
专家分:3
注 册:2020-7-6
收藏
 问题点数:0 回复次数:9 
怎么使用_SCREEN.VISIBLE=.F.
try0526.7z (1.17 KB)

我写了一条_SCREEN.VISIBLE=.F.
结果是把vfp窗口连同自己都隐藏了。
谁能帮我改一下,把vfp隐藏了而自己显示在屏幕中央。
谢谢
搜索更多相关主题的帖子: 屏幕 隐藏 窗口 显示 vfp 
2026-05-26 21:16
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:USA
等 级:贵宾
威 望:67
帖 子:2636
专家分:4964
注 册:2012-2-29
收藏
得分:0 
是这个效果吗?
图片附件: 游客没有浏览图片的权限,请 登录注册

try0526_新.rar (1.24 KB)


[此贴子已经被作者于2026-5-27 05:50编辑过]

2026-05-27 05:48
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:420
专家分:962
注 册:2014-6-12
收藏
得分:0 
VFP编译的exe,运行时会先显示_SCREEN窗口,感觉不好看,大部分会选择隐藏它,_SCREEN.VISIBLE = .F. 或者 SCREEN = OFF
隐藏它之后,就需要一个独立的顶层模式表单做主界面,此时模式表单窗口如果达到3层,特别是第3层有耗时代码时,第3层模式表单包括messagebox有机会跑到其它表单的后面,因为无法看到第3层表单或messagebox,第2层模式表单必然是未激活禁用状态,导致exe无法操作
导致这种现象的原因是它的窗口序列乱了,不完美的解决办法就是在第3层代码执行完毕增加激活该窗口句柄

你们没有遇到吗?这个BUG不知道CCB2000是如何解决的?

https://bbs.
图片附件: 游客没有浏览图片的权限,请 登录注册
2026-05-27 13:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11446
专家分:43658
注 册:2014-5-20
收藏
得分:0 
回复 3楼 kangss
好像 与 Desktop = .t. 有关

2026-05-27 13:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:11446
专家分:43658
注 册:2014-5-20
收藏
得分:0 
回复 3楼 kangss
图片附件: 游客没有浏览图片的权限,请 登录注册


按要求测试未见异常

测试文件:
模式表单问题.rar (17.64 KB)


我10几年前用的电脑也出现过这类问题。
事情有点飘忽,同一个程序只有个别电脑有时会出现这种现象,怀疑有可能是其他应用程序“抢焦”的问题。
当时处理也没什么好方法,试过 Desktop = .f. 时未见出现过(可能存在偶然性)。但实际应用要求 Desktop = .t.,只好在出现这类问题时用全局热键通过 forms 枚举所有表单 SetFocus(thisform.hWnd)。

会不会运行抛出异常提示窗口时被盖住,用户看不到而“挂了”。

[此贴子已经被作者于2026-5-28 16:25编辑过]

2026-05-28 16:18
easyppt
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:523
专家分:1076
注 册:2021-11-24
收藏
得分:0 
我刚学VFP时也用顶层表单,隐藏_screen
其实完全不用隐藏_screen,可以通过配置,隐藏菜单、工具栏、状态栏、等等。
然后做一张类似桌面的空白表单(也可以把功能放这个表单上),就可以了。
这样 所有的表单依然可以是 在屏幕中,这才是最完美的开发场景吧


2026-05-29 09:15
hsfisher
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:306
专家分:142
注 册:2009-4-26
收藏
得分:0 
学习了
2026-05-29 09:35
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:420
专家分:962
注 册:2014-6-12
收藏
得分:0 
以下是引用吹水佬在2026-5-28 16:18:47的发言:



按要求测试未见异常

测试文件:

我10几年前用的电脑也出现过这类问题。
事情有点飘忽,同一个程序只有个别电脑有时会出现这种现象,怀疑有可能是其他应用程序“抢焦”的问题。
当时处理也没什么好方法,试过 Desktop = .f. 时未见出现过(可能存在偶然性)。但实际应用要求 Desktop = .t.,只好在出现这类问题时用全局热键通过 forms 枚举所有表单 SetFocus(thisform.hWnd)。

会不会运行抛出异常提示窗口时被盖住,用户看不到而“挂了”。

感谢你的例子,我测试了,运行正常
偶尔大概率出现异常状况的情况是:第三层窗口的load或init运行耗时代码影响到第三层窗口瞬间弹出,或第三层窗口的load或init运行耗时代码后弹出messagebox,那么第三层窗口和这个messagebox有机会被第2层窗口遮挡。
加大复现概率的情况是:上述情况在远程协助操作时
解决办法:1、如果窗口init有耗时代码,在它的最后增加一个激活置顶窗口的代码
2、主窗口计时器定时枚举messagebox窗口#32770激活置顶
2026-05-29 13:11
Wayneboc
Rank: 1
等 级:新手上路
帖 子:74
专家分:3
注 册:2020-7-6
收藏
得分:0 
回复 2楼 schtg
    多谢帮助。
    只是隐藏VFP窗口后,form跑到另外一个Windows窗口上去了,我得切换Windows窗口才能看到那个运行中的form。不知道有没有办法让form停在原处。
    尽管我不明为什么,你的行,我的不行,我先把你的form抄来用。具体的代码我慢慢体会。
    多谢

[此贴子已经被作者于2026-5-30 13:29编辑过]

2026-05-30 10:41
Wayneboc
Rank: 1
等 级:新手上路
帖 子:74
专家分:3
注 册:2020-7-6
收藏
得分:0 
回复 5楼 吹水佬
    我看代码似懂非懂,但我先抄来用上,照虎画猫干我的活。
    以后我再琢磨。
    我拿了你的鱼,不久以后我也会渔了。
    多谢。
2026-05-30 10:44
快速回复:怎么使用_SCREEN.VISIBLE=.F.
数据加载中...
 
   
关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021662 second(s), 10 queries.
Copyright©2004-2026, BCCN.NET, All Rights Reserved