Autor
|
Tema: Un formulario y poder desplazarlo (Leído 1,512 veces)
|
SheKeL_C$
Desconectado
Mensajes: 549
_-=[Sh3K3L_C$]=-_
|
holas, tego un formulario k quiero q no tenga los tipicos botones de cerrar maximizar y minimizar, los tengo como botones dentro del formulario, asi k l puse borderstyle 0none, entonces desaparece pero no lo puedo desplazar q es lo q yo busco, el poder desplazarlo Gracias
|
|
|
En línea
|
|
|
|
karmany
|
Hola seken_C4.
También estoy interesado en lo mismo, ahora no tengo tiempo para probar esto pero lo haré..
Se me ocurre por ejemplo (son sólo ideas), crear un botón que simule la barra donde están los botones de minimizar etc.. y cuando sea pulsada variar los valores Left y Top del formulario.. Tengo bastantes lagunas de cómo hacer variar los valores según la posición del ratón.. todo es probar..
Un saludo
|
|
|
En línea
|
|
|
|
casaviella
|
Este codigo que pongo a continuación lo puso Reydelmundo11 en un post de este foro pero lo vuelvo a poner yo. Module1.bas '******************************************************************************** '* Movimiento del formulario * '* de Reydelmundo11 * '********************************************************************************
Declare Function ReleaseCapture Lib "user32" () As Long Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Const WM_NCLBUTTONDOWN = &HA1 Public Const HTCAPTION = 2
Public Sub FormDrag(theform As Form) ReleaseCapture Call SendMessage(theform.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&) End Sub
En el form: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Call FormDrag(Form1) End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Call FormDrag(Form1) End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Call FormDrag(Form1) End Sub No olvides de cambiar Form1 por el nombre de tu form pero sin quitar los parentesis. Saludos y felices navidades
|
|
|
En línea
|
|
|
|
Sancho.Mazorka
Desconectado
Mensajes: 480
Gamer & Programador
|
mira este codigo me lo hizo ZEALOT para mi les dejo el codigo, aparte este codigo la moverlo o apretar sobre la barra de titulo hace que se vuelva transparente XD!!! Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal wNewLong As Long) As Long Private Const GWL_STYLE = (-16) Private Const GWL_EXSTYLE = (-20) 'Requires Windows 2000 or later: Private Const WS_EX_LAYERED = &H80000
Private Declare Function SetLayeredWindowAttributes Lib "USER32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long Private Const LWA_COLORKEY = &H1 Private Const LWA_ALPHA = &H2 Dim posx As Integer, posy As Integer, estado As Integer Public Sub MakeWindowTransparent(ByVal hWnd As Long, ByVal alphaAmount As Byte) Dim lStyle As Long lStyle = GetWindowLong(hWnd, GWL_EXSTYLE) lStyle = lStyle Or WS_EX_LAYERED SetWindowLong hWnd, GWL_EXSTYLE, lStyle SetLayeredWindowAttributes hWnd, 0, alphaAmount, LWA_ALPHA End Sub
'La transparencia es graduable modificando el alphaamount en este caso esta en 150 mientras menor es este valor mas transparente se torna
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) posx = X posy = Y If WindowState = 0 Then estado = 1 Else estado = 0 End If Call MakeWindowTransparent(Form1.hWnd, 180) End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If estado = 1 Then Form1.Move Form1.Left + X - posx, Form1.Top + Y - posy End Sub
Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) estado = 0 Call MakeWindowTransparent(Form1.hWnd, 255) End Sub
Private Sub lblCerrar_Click() End End Sub
Private Sub lblmax_Click() If Form1.WindowState = 0 Then Form1.WindowState = 2 Else Form1.WindowState = 0 End If End Sub
Private Sub lblmin_Click() Form1.WindowState = 1 End Sub
|
|
|
En línea
|
|
|
|
SheKeL_C$
Desconectado
Mensajes: 549
_-=[Sh3K3L_C$]=-_
|
Hola d nuevo y gracias a los 3, m voy a quedar con el d Sancho.Mazorka q el q sea transparente... gana muxo con eso Gracias d nuevo y espero en otras ocasoines ayudar = k m ayudan a mi :rolleyes :
|
|
|
En línea
|
|
|
|
karmany
|
He de decir Sancho.Mazorka que vengo de probar lo que has comentado y... muchas, muchísimas gracias!!!!, me he quedado muy impresionado...y contentísimo...
|
|
|
En línea
|
|
|
|
|
|