Visual Basic - ¿como arrastrar un formulario sin bordes?

Life is soft - evento anual de software empresarial
 
Vista:

¿como arrastrar un formulario sin bordes?

Publicado por alwaro (2 intervenciones) el 28/04/2006 14:47:47
Hola a todos, mi problema es que no se como arrastrar un formulario que por motivos de diseño no tiene bordes. Buscando por la red me encontre este código en la web de microsoft como solucion a mi problema pero no me tira:

(En la ayuda del Vb ponia que user debia cambiarlo por user32 para arquitectura de 32bits, pero sigue cascando)
-----------------------------------------------------------------------------------------------------------------------------------
Option Explicit
Private Declare Sub ReleaseCapture Lib "User" ()
Private Declare Function SendMessage Lib "User" (ByVal hWnd As _
Integer, ByVal wMsg As Integer, ByVal wParam As Integer, _
lParam As Any) As Long

Private Const WM_SYSCOMMAND = &H112
Private Const MOUSE_MOVE = &HF012

' Enter the line below as one line of code
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Dim lReturn As Long
Call ReleaseCapture
lReturn = SendMessage(Form1.hWnd, WM_SYSCOMMAND, MOUSE_MOVE, 0)
End Sub
----------------------------------------------------------------------------------------------------------------------------------
El error que me da es "desbordamiento" y lo da en la última linea (la que da valor a lReturn).

Si alguien me pudiese echar un cable se lo agradeceria muchísimo, yo estoy bastante perdido ahora mismo, y le he dado mil vueltas ya pero nada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿como arrastrar un formulario sin bordes?

Publicado por LLE (3 intervenciones) el 28/04/2006 23:49:16
Estaban mal declaradas las funciones Api y además la llamada a SendMessage va en el MouseMove del form

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" ()
'Constantes para pasrle a SendMessage
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lReturn As Long
Call ReleaseCapture
If Button = 1 Then
lReturn = SendMessage(Form1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End If
End Sub

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿como arrastrar un formulario sin bordes?

Publicado por alwaro (2 intervenciones) el 05/05/2006 09:40:21
Muchas gracias, ya funciona, por fin!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar