| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6860 人关注过本帖
标题:VFP中怎样实现表单背景图片在表单普通显示和最大化时都能够以全图显示
只看楼主 加入收藏
陶然愚者
Rank: 1
等 级:新手上路
帖 子:151
专家分:8
注 册:2012-12-13
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:34 
VFP中怎样实现表单背景图片在表单普通显示和最大化时都能够以全图显示
如题,请各位老师指点。谢谢!
搜索更多相关主题的帖子: 背景图片 能够 表单 
2013-01-31 15:04
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
------解决方案--------------------------------------------------------
Screen.Picture 没有伸缩属性可设置,只能在 Screen 上加一个 image 控件来显示图片:

_Screen.AddObject('background', 'Image')
_Screen.background.Picture = Getpic() && 或者写你自己的图片文件名
_Screen.background.Visible = .T.
_Screen.background.Stretch = 2 && 不想变形就设为 1
_Screen.background.Move(0,0,_Screen.Width,_Screen.Height)

------解决方案--------------------------------------------------------
1、在表单设置里,把图片先设置成与表单大小。
2、把图片的Anchor属性设置成:15
这样,图片就能自动随表单变化了。
2013-01-31 15:19
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:3 
aa.rar (13.29 KB)

认真看书学习,弄通Fox主义。
2013-01-31 16:31
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9805
专家分:26913
注 册:2012-2-5
收藏
得分:3 
表单INIT事件
程序代码:
THISFORM.ADDOBJECT('IMAGE1','IMAGE')
WITH THISFORM.IMAGE1
     .WIDTH = THISFORM.WIDTH
     .HEIGHT = THISFORM.HEIGHT
     .VISIBLE = .T.
     .STRETCH = 2
     .PICTURE=SYS(5)+SYS(2003)+'\2.JPG'
ENDWITH 

坚守VFP最后的阵地
2013-01-31 18:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
贴图,在init中设置stretch是不够的,那只能在窗体启动时有效,当用户拉伸窗体边框时就失效了。

授人以渔,不授人以鱼。
2013-02-02 15:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
解压运行试试:

test1.zip (565.15 KB)
收到的鲜花
  • 陶然愚者2013-02-04 08:11 送鲜花  3朵   附言:谢谢!

授人以渔,不授人以鱼。
2013-02-02 17:33
陶然愚者
Rank: 1
等 级:新手上路
帖 子:151
专家分:8
注 册:2012-12-13
收藏
得分:0 
以下是引用TonyDeng在2013-2-2 15:34:50的发言:

贴图,在init中设置stretch是不够的,那只能在窗体启动时有效,当用户拉伸窗体边框时就失效了。
对头......
2013-02-04 08:11
陶然愚者
Rank: 1
等 级:新手上路
帖 子:151
专家分:8
注 册:2012-12-13
收藏
得分:0 
回复 6楼 TonyDeng
非常妙。能提供原代码,讲解下实现方法吗?
2013-02-04 08:25
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
Main()
RETURN 

PROCEDURE Main
    LOCAL loForm
    loForm = CREATEOBJECT("_Form")
    WITH loForm
        .Caption = "桌面背景测试程序"
        .Show
    ENDWITH
    READ EVENTS
ENDPROC 

DEFINE CLASS _Form AS Form
    ShowWindow = 2
   
    ADD OBJECT PROTECTED imgBackground AS Image WITH Picture = "Z:\test\VFP\China 06.JPG"
   
    PROCEDURE Activate
        This.Resize
    ENDPROC
   
    PROCEDURE Resize
        WITH ThisForm
            .Width = .Height * .imgBackground.Scale
            .imgBackground.Resize
        ENDWITH
        DODEFAULT()
    ENDPROC
   
    PROCEDURE imgBackground.Init
        WITH This
            .Stretch = 0
            .AddProperty("Scale", .Width / .Height)
            .Stretch = 1
        ENDWITH
    ENDPROC
   
    PROCEDURE imgBackground.Resize
        WITH This
            .Top = 0
            .Left = 0
            .Height = .Parent.Height
            .Width = .Parent.Width
        ENDWITH
    ENDPROC
   
    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC
   
ENDDEFINE

授人以渔,不授人以鱼。
2013-02-04 12:37
陶然愚者
Rank: 1
等 级:新手上路
帖 子:151
专家分:8
注 册:2012-12-13
收藏
得分:0 
回复 9楼 TonyDeng
谢谢!拷贝下来慢慢学习领会......
2013-02-04 14:14
快速回复:VFP中怎样实现表单背景图片在表单普通显示和最大化时都能够以全图显示
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

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