主题:[原创]怎样让屏幕图片随系统主窗口大小的变化而变化?
jinlonggao
[专家分:17130] 发布于 2006-06-02 09:33:00
我用下列代码实现屏幕背景图片的设置:
_screen.AddObject('Image1','Image')
_screen.Image1.width = _screen.width
_screen.Image1.height = _screen.height
_screen.Image1.visible = .t.
_screen.Image1.stretch = 2
_screen.Image1.picture='pic\20.jpg'
但是,当屏幕(即系统主窗口)大小发生变化时,怎样让图片自动适应.
如果不是在屏幕,而是在表单中,我可以直接在表单的resize中编写代码,但对于屏幕
_Screen 如何解决??
敬请高手指点!!
回复列表 (共9个回复)
沙发
vfp123456 [专家分:1020] 发布于 2006-06-04 12:44:00
DEFINE CLASS ScreenHook AS CUSTOM
oScr = _SCREEN
PROCEDURE oScr.RESIZE()
*
* 处理主 VFP 屏幕重调的代码
*
WAIT WINDOW NOWAIT TRANSFORM(THIS.WIDTH)+" "+TRANSFORM(THIS.HEIGHT)
ENDPROC
PROCEDURE oScr.moved()
_SCREEN.NewObject("oSH","ScreenHook","screenmethods.prg")
板凳
jinlonggao [专家分:17130] 发布于 2006-06-04 13:01:00
谢谢一楼朋友,最后一句
_SCREEN.NewObject("oSH","ScreenHook","screenmethods.prg")
怎么解释,怎么使用?
"oSH"指什么? "screenmethods.prg"是我要编写的程序吗?
3 楼
zhadalou [专家分:480] 发布于 2007-09-17 22:07:00
http://www.programfan.com/club/post-250798.html
4 楼
Ilikefox [专家分:5770] 发布于 2007-09-17 23:32:00
楼主好;
如果用的是6、7版,这是个很巧妙的办法;事实上8版开始就不行了,转而用BINDEVENT函数。
这在fox wiki网站有详细说明和示例
[url]http://fox.wikis.com/wc.dll?Wiki~ScreenMethods~Wiki[/url]
这个站foxer们应该去看看。
5 楼
BlueSmart [专家分:2340] 发布于 2007-09-18 06:59:00
[quote]
[url]http://fox.wikis.com/wc.dll?Wiki~ScreenMethods~Wiki[/url]
这个站foxer们应该去看看。[/quote]
果然好!
谢!!
6 楼
jinlonggao [专家分:17130] 发布于 2007-09-18 08:49:00
谢谢各位关注本帖,我在VFP9里通过设定anchor属性解决了问题,代码如下:
_screen.AddObject('Image1','Image')
with _screen.Image1
.width = _screen.width
.height = _screen.height
.visible = .t.
.stretch = 2
.anchor = 15
.picture='pics\picture1.jpg'
endwith
7 楼
cbl518 [专家分:57140] 发布于 2007-09-18 08:56:00
高老师的方法精湛,值得推广。
Anchor 属性 (vfp 9 新属性)
定义在调整容器大小时,可视控件锚定到父容器的哪些边。设计和运行时可读/写。
8 楼
jinlonggao [专家分:17130] 发布于 2007-09-19 17:52:00
VFP9里的anchor属性确实是好东西,省去了很多编程的麻烦!不知道VFP9里还有什么好东东,大家一块讨论.
9 楼
cqhxr [专家分:330] 发布于 2007-09-20 20:21:00
好帖,值得学习。
我来回复