CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

如何移动窗体?

楼主lovever1999(风儿)2002-04-14 15:00:37 在 VB / 基础类 提问

如何使一个窗体根据鼠标的移动而移动?  
  也就是说,假如我在窗体上放一个图片框,执行时当鼠标按住图片框拖动时,窗体也跟着动,怎么实现? 问题点数:20、回复次数:5Top

1 楼handsomge(汗衫)回复于 2002-04-14 15:13:19 得分 20

移动窗体:  
    这些在声明部分:    
                    Dim   IsMoving   as   bolean  
                    Dim   mX   as   single  
                    Dim   mY   As   single  
  这些在PictureBox的MouseDown事件:  
  IsMoving=True  
  mX=X  
  mY=Y  
  这些在PictureBox的MouseUp事件:  
  IsMoving=False  
   
  这些在PictureBox的Mousemove事件:  
      If   IsMoving   Then    
              me.left=me.left+   X   -   mX  
              me.Top=me.Top+   Y-   mY  
              Exit   Sub  
      End   If  
   
   
           
   
   
  Top

2 楼gaoqi5037(高岐)回复于 2002-04-14 15:15:28 得分 0

Dim   Oldx  
  Dim   Oldy  
   
  Private   Sub   Image1_MouseDown(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
          Oldx   =   X  
          Oldy   =   Y  
  End   Sub  
   
  Private   Sub   Image1_MouseMove(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
          If   Not   Button   =   1   Then   Exit   Sub  
          Left   =   Left   -   (Oldx   -   X)  
          Top   =   Top   -   (Oldy   -   Y)  
  End   SubTop

3 楼lovever1999(风儿)回复于 2002-04-14 15:17:38 得分 0

Thank   you   very   much!Top

4 楼ap800(丑小鸭)回复于 2002-04-14 15:21:12 得分 0

sendmessage   wm_system,htcaption,0,0Top

5 楼HungryBoy(http://www.zhijian.net)回复于 2002-04-14 15:22:14 得分 0

Private   Declare   Function   SendMessage   Lib   "User32"   Alias   "SendMessageA"   (ByVal   hWnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   Any)   As   Long  
  Private   Declare   Sub   ReleaseCapture   Lib   "User32"   ()  
  Const   WM_NCLBUTTONDOWN   =   &HA1  
  Const   HTCAPTION   =   2  
  Private   Sub   Form_Paint()  
          Me.Print   "Click   on   the   form,   hold   the   mouse   button   and   drag   it"  
  End   Sub  
   
  Private   Sub   Picture1_MouseMove(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
          Dim   lngReturnValue   As   Long  
          If   Button   =   1   Then  
                  Call   ReleaseCapture  
                  lngReturnValue   =   SendMessage(Me.hWnd,   WM_NCLBUTTONDOWN,   HTCAPTION,   0&)  
          End   If  
  End   Sub  
  Top

6 楼laisiwei(.:RNPA:.刺猬)回复于 2002-04-14 15:42:31 得分 0

Dim   IsMoving   As   Boolean  
  Dim   mX   As   Single  
  Dim   mY   As   Single  
   
  Private   Sub   Picture1_MouseDown(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
          IsMoving   =   True  
          mX   =   X  
          mY   =   Y  
  End   Sub  
   
  Private   Sub   Picture1_MouseMove(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
          If   IsMoving   Then  
                  Me.Move   Me.Left   +   X   -   mX,   Me.Top   +   Y   -   mY  
          End   If  
  End   Sub  
   
  Private   Sub   Picture1_MouseUp(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
          IsMoving   =   False  
  End   SubTop

相关问题

  • 如何移动windows窗体!
  • 如何让子窗体只能在父窗体中移动?
  • 如何控制MDIChild窗体的移动
  • 如何禁止窗体被移动?
  • 如何移动无边框的窗体?
  • 窗体如何透明并移动?
  • 如何通过控件移动窗体?
  • 如何捕获Mid窗体的移动?
  • 如何移动标主窗体题栏,子窗体随着移动
  • 问一个关于自己画窗体时,如何移动窗体的问题?

关键词

  • me
  • top
  • 窗体
  • ismoving
  • single
  • picturebox
  • 事件
  • sub
  • byval
  • dim

得分解答快速导航

  • 帖主:lovever1999
  • handsomge

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo