vb基礎 (轉)

amyz發表於2007-11-13
vb基礎 (轉)[@more@]

''說明:
'本例演示了怎樣移動無標題欄的窗體的方法,程式中涉
'及到MouseDown、MouseMove、MouseUp三個滑鼠事件的
'使用,我們可以從中學習到它們的用法。
'---------------------------------------------
Option Explicit
'變數宣告
'MoveScreen,布林型變數,標示窗體是否處於被移動狀態
Dim MoveScreen As Boolean

'滑鼠位置
Dim MousX As Integer
Dim MousY As Integer
'窗體位置
Dim CurrX As Integer
Dim CurrY As Integer

'“退出”按鈕
Private Sub CmdExit_Click()
  End
End Sub

'當滑鼠在窗體上按下時
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'---------------------------------------------
'引數說明:
'---------------------------------------------
'button  返回一個整數,用來標識按下或釋放的是哪一
'個按鈕。button 引數的值為相應於左按鈕(1)右按鈕
'(2),以及中間按鈕(4)。
'---------------------------------------------
'shift  返回一個整數,在滑鼠按鈕被按下或者被釋放
'的同時,SHIFT,CTRL,和 ALT 鍵的狀態,返回的shift
'引數值分別為1,2,和 4。指示這些鍵的狀態。
'---------------------------------------------
'x, y  返回一個指定滑鼠指標當前位置的數。
'---------------------------------------------
  '如果是滑鼠左鍵按下
  If Button = 1 Then
  '標示為移動狀態
  MoveScreen = True
  '得到滑鼠在窗體上的位置(相對與窗體內部座標)
  MousX = X
  MousY = Y
  End If
End Sub

'當滑鼠在窗體上移過時
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 
  '如果處於滑鼠左鍵按下的狀態,即MoveScreen = True時
  If MoveScreen Then
  '計算新的窗體座標值
  '仔細想一下,看看是不是這樣
  CurrX = Form1.Left - MousX + X
  CurrY = Form1.Top - MousY + Y
  '移動窗體到新的位置
  Form1.Move CurrX, CurrY
  End If
 
  '把新的窗體座標顯示出來,是相對於螢幕的座標
  Label1.Caption = CurrX
  Label2.Caption = CurrY
  '把滑鼠點選的位置顯示出來,是相對與窗體的座標
  Label3.Caption = MousX
  Label4.Caption = MousY
End Sub

'如果滑鼠鬆開,則停止拖動
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  MoveScreen = False
End Sub

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982094/,如需轉載,請註明出處,否則將追究法律責任。

相關文章