• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

窗体迁移大法

发布: 2007-6-21 21:57 | 作者: 徐立伟  | 来源: 中国电脑教育报  | 查看: 17次 | 进入软件测试论坛讨论

领测软件测试网

下一页 1 2 

     有很多软件为了实现特殊的显示效果,采用非矩形的窗体,而这些窗体往往没有标题栏。想要移动一个没有标题栏的窗口是不那么容易的。下面我介绍两种在VB中采取不同原理的方法移动一个没有标题栏的窗口。

  方法一

  这种方法是在窗体的MouseDown、MouseUp和MouseMove等事件的处理过程中添加代码,实现在鼠标左键按下后移动时,改变窗体的Left和Top属性,实现移动无标题栏的窗体。

  进入VB,把窗体Form1的BorderStyle属性设置为0-None(无标题栏),再窗体上添加一个ButtonCommand组件,用来关闭程序。代码如下:

  Private Type POINT

   X As Single

   Y As Single

  End Type

  Dim FormP As POINT

  '记录窗体原始位置

  Dim MouseP As POINT

  '记录鼠标按下时的位置

  Dim MouseLButtonDown As Boolean

  '记录鼠标左键是否按下

  Private Sub Command1_Click()

   End '退出程序

  End Sub

  Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

   FormP.X = Form1.Left

  '记下窗体原始坐标位置

   FormP.Y = Form1.Top

   MouseP.X = X

  '记下鼠标按下时的位置

   MouseP.Y = Y

   If Button = 1 Then

   MouseLButtonDown = True

  '鼠标左键按下

   End If

  End Sub

  Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

   If MouseLButtonDown Then

   Form1.Left = FormP.X + (X - MouseP.X) '移动窗体

   Form1.Top = FormP.Y + (Y - MouseP.Y)

   End If

  End Sub

  Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

   MouseLButtonDown = False

  '鼠标左键弹起

  End Sub

  上述方法不是很完善,制作出的窗体被拖动时,窗体会随鼠标的移动而移动。而在默认的Windows设置中拖动窗体时,被拖动的窗体不会随窗体的移动而移动,随窗体移动的仅是一个与窗体形状、大小一样的虚框,只有释放鼠标后,窗体才会移动到释放鼠标时虚框的所在处。要实现这种效果,请看第二种方法。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网