有很多软件为了实现特殊的显示效果,采用非矩形的窗体,而这些窗体往往没有标题栏。想要移动一个没有标题栏的窗口是不那么容易的。下面我介绍两种在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设置中拖动窗体时,被拖动的窗体不会随窗体的移动而移动,随窗体移动的仅是一个与窗体形状、大小一样的虚框,只有释放鼠标后,窗体才会移动到释放鼠标时虚框的所在处。要实现这种效果,请看第二种方法。 |
闂傚倸鍊峰ù鍥Υ閳ь剟鏌涚€n偅宕岄柡宀€鍠栭、娑樷堪閸愮偓姣夋俊鐐€戦崕鏌ュ垂閸ф钃熼柣鏃囥€€閸嬫挸鈽夊▍顓т簼閹便劑宕惰閺€鑺ャ亜閺囩偞顥為悗姘炬嫹闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏缂傚倷璁查弲鐘诲蓟閻旂⒈鏁嶆繝濠傚枤閺嗩厼顪冮妶鍐ㄥ姷闁瑰嚖鎷�>>
正在阅读:窗体迁移大法窗体迁移大法
2004-02-14 09:34
出处:中国电脑教育报
责任编辑:huangpeidan
键盘也能翻页,试试“← →”键