|
|
|
|
|
Dicas
|
|
Visual Basic (Forms/MDI)
|
|
|
Título da Dica: Mover um form sem borda com API e sem API
|
|
|
|
Postada em 22/8/2007 por ghost_jlp
Para executar os exemplos abaixo crie um novo projeto e coloque a propriedade BorderStyle = 0-None para ficar sem a borda.
1) Mover o form sem borda COM API
Option Explicit Private Declare Function ReleaseCapture Lib "user32" () As Long 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 Const WM_NCLBUTTONDOWN As Long = &HA1 Const HTCAPTION As Long = 2
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim lngReturnValue As Long If Button = vbLeftButton Then Call ReleaseCapture lngReturnValue = SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&) End If End Sub
2) Mover o form sem borda SEM API
Private OldX As Integer Private OldY As Integer Private DragMode As Boolean Dim MoveMe As Boolean
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) MoveMe = True OldX = X OldY = Y End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If MoveMe = True Then Me.Left = Me.Left + (X - OldX) Me.Top = Me.Top + (Y - OldY) End If End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.Left = Me.Left + (X - OldX) Me.Top = Me.Top + (Y - OldY) MoveMe = False End Sub
'*************************************************
fonte: http://www.vbforums.com/showthread.php?t=231152&goto=nextoldest
|
|
|
|
|