| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 560 人关注过本帖
标题:求助!picturebox 移动图片!!!(等待解决)
收藏  订阅  推荐  打印 
zfjyyzycl
Rank: 3Rank: 3
等级:中级会员
帖子:216
积分:2360
注册:2006-4-15
求助!picturebox 移动图片!!!(等待解决)

picturebox里装了一个大图片,2048*2048这么大,一个游戏地图,怎么才能通过方向键,使地图移动呢

谢谢各位了(

[ 本帖最后由 zfjyyzycl 于 2008-4-3 23:53 编辑 ]
搜索更多相关主题的帖子: picturebox  地图  游戏  
2008-4-3 18:09
论坛元老
Rank: 4
等级:高级会员
帖子:810
积分:8352
注册:2008-3-31

option   explicit   
  dim   x0   as   single   
  dim   y0   as   single   
  dim   a   as   single   
  dim   b   as   single   
   
  private   sub   pic_dragdrop(source   as   control,   x   as   single,   y   as   single)   
        source.move   a   +   x   -   x0,   b   +   y   -   y0   
        source.drag   2   
        source.mousepointer   =   0   
  end   sub   
   
  private   sub   pic_mousedown(button   as   integer,   shift   as   integer,   x   as   single,   y   as   single)   
        pic.mousepointer   =   99   
        pic.drag   1   
        x0   =   x   
        y0   =   y   
        a   =   pic.left   
        b   =   pic.top   
  end   sub

怎么不可以用Discuz代码呢!
2008-4-3 18:34
zfjyyzycl
Rank: 3Rank: 3
等级:中级会员
帖子:216
积分:2360
注册:2006-4-15

谢谢您的回答,代码运行后 是整个图片框动,和我说的不一样,也许我没有表达清楚,我要的效果是,图片框不动,而是里面的图片移动,效果就像游戏得地图移动一样
2008-4-3 23:51
西山居士
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:11
帖子:583
积分:6164
注册:2007-4-21

可以再加一个容器

2008-4-4 20:11
jxyga111
Rank: 12Rank: 12Rank: 12
来自:中華人民共和國
等级:版主
威望:11
帖子:4291
积分:5377
注册:2008-3-21

元老你的有錯啊,往上了就不能往下
2008-5-20 17:03
超级隐士
Rank: 2
等级:注册会员
帖子:42
积分:614
注册:2008-5-4

我的代码,供参考:

Public Sub ReSize()
    HScroll1.Max = Image1.Width - Picture1.ScaleWidth
    If Image1.Width < Picture1.ScaleWidth Then
        HScroll1.Visible = False
        Image1.Left = (Picture1.ScaleWidth - Image1.Width) / 2
    Else
        HScroll1.Visible = True
        Image1.Left = Picture1.ScaleLeft
    End If
    VScroll1.Max = Image1.Height - Picture1.ScaleHeight
    If Image1.Height < Picture1.ScaleHeight Then
        VScroll1.Visible = False
        Image1.Top = (Picture1.ScaleHeight - Image1.Height) / 2
    Else
        VScroll1.Visible = True
        Image1.Top = Picture1.ScaleTop
    End If
End Sub

Private Sub Form_Load()
    Image1.Picture = LoadPicture(App.Path & "\地图.jpg")
    ReSize
End Sub

Private Sub HScroll1_Change()
    Image1.Left = -HScroll1.Value
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Static Cx As Long
    Static Cy As Long
    Cx = Image1.Width
    Cy = Image1.Height
    Select Case Button.Key
        Case "Open"
        Case "Save"
        Case "Delete"
        Case "Print"
        Case "Magnify"
            Image1.Width = Cx * 1.25
            Image1.Height = Cy * 1.25
            ReSize
            If Image1.Width > 32767 Or Image1.Height > 32767 Then Toolbar1.Buttons(7).Enabled = False
            If Image1.Width > 5000 And Image1.Height > 5000 Then Toolbar1.Buttons(8).Enabled = True
        Case "Reduce"
            Image1.Width = 0.8 * Cx
            Image1.Height = 0.8 * Cy
            ReSize
            If Image1.Width < 5000 Or Image1.Height < 5000 Then Toolbar1.Buttons(8).Enabled = False
            If Image1.Width < 32767 And Image1.Height < 32767 Then Toolbar1.Buttons(7).Enabled = True
    End Select
End Sub

Private Sub VScroll1_Change()
    Image1.Top = -VScroll1.Value
End Sub

PictureBox做容器,Image放在PictureBox里面

[ 本帖最后由 超级隐士 于 2008-5-21 11:42 编辑 ]
2008-5-21 11:39
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.052186 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved