Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: agus0 en 10 Diciembre 2010, 02:14 AM

Título: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 10 Diciembre 2010, 02:14 AM
Holaa Estoy en un proyecto y puse el BoirderStyle en 0 - None y se fue el ControlBox Con el Caption en fin todo el borde de la ventana, pero Agregue un Menú para usae de PopUpMenu y Volvio a aparecer el ControlBox Con toda la Barra de Tareas y el Borde del Form aunque el BorderStyle este en 0... Saben que puedo hacer??

P.D= De mas esta decir que el PopUpMenu esta en Visible.False :S
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: Psyke1 en 10 Diciembre 2010, 02:38 AM
Prueba con esto:
Código (vb) [Seleccionar]
Option Explicit

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 dwNewLong As Long) As Long

Private Const GWL_STYLE As Long = (-16)
Private Const WS_CAPTION As Long = &HC00000
Private Const WS_THICKFRAME  As Long = &H40000

Private Sub Form_Load()
    ' Vivan las ranas! :D
    SetWindowLong Me.hwnd, _
                  GWL_STYLE, _
                  GetWindowLong(Me.hwnd, GWL_STYLE) _
                  And Not WS_CAPTION And Not WS_THICKFRAME
End Sub


DoEvents! :P
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 10 Diciembre 2010, 02:45 AM
Esperaba Tu Respuesta Ranita !!

Gracias... Te Iva a decir que Falla un poco pero Solo en El IDE independientemente del IDE anda Bien =)


Muchas Gracias
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 10 Diciembre 2010, 04:46 AM
Al Final si Tiene UN Bug, Cuando Ejecutas el Programa te muestra el Marco Igual pero como si no tuviera el foco y si lo apretás es como si no estuviera, se ba cuando minimizas el programa y lo volvés a dar Foco :S
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: Dessa en 10 Diciembre 2010, 05:01 AM
Que raro, haber si funciona refrescando ?
(no probé con el popmenu)

 

Option Explicit

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 dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Const GWL_STYLE As Long = (-16)
Private Const WS_CAPTION As Long = &HC00000
Private Const WS_THICKFRAME  As Long = &H40000

Private Sub Form_Load()
   ' Vivan las ranas! :D
   SetWindowLong Me.hwnd, _
                 GWL_STYLE, _
                 GetWindowLong(Me.hwnd, GWL_STYLE) _
                 And Not WS_CAPTION And Not WS_THICKFRAME
                 
       Call SetWindowPos(Me.hwnd, &H0, &H0, &H0, &H0, &H0, &H27)
             
End Sub


Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 10 Diciembre 2010, 05:11 AM
No. Ya probé Refrescando...
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: Psyke1 en 10 Diciembre 2010, 09:07 AM
.
Yo uso WinXP y creo que me iva bien... :-\

Respuesta definitiva que soluciona el tema :  :xD
Código (vb) [Seleccionar]
Option Explicit

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 dwNewLong As Long) As Long

Private Const GWL_STYLE                 As Long = (-16)
Private Const WS_CAPTION                As Long = &HC00000

Private Function BorderStyleNone(ByVal bValue As Boolean) As Long
Dim lStyle                              As Long
   lStyle = GetWindowLong(Me.hWnd, GWL_STYLE)
   If bValue Then
       lStyle = lStyle Xor WS_CAPTION
   Else
       lStyle = lStyle Or WS_CAPTION
   End If
   BorderStyleNone = SetWindowLong (Me.hWnd, GWL_STYLE, lStyle)
End Function

Private Sub Form_Activate()
   Call BorderStyleNone(True)
End Sub


DoEvents! :P
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: raul338 en 10 Diciembre 2010, 11:04 AM
Y si pones el menu principal como invisible? :P (o sea que el menu tenga esta forma)

MenuPopup: Visible -> False
···Opcion 1
···Opcion 2

En tiempo de diseño SIEMPRE se va a ver el borde con titulo, una vez que presionas F5 ya no se deberia ver :)
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 10 Diciembre 2010, 13:58 PM
Cita de: raul338 en 10 Diciembre 2010, 11:04 AM
Y si pones el menu principal como invisible? :P (o sea que el menu tenga esta forma)

MenuPopup: Visible -> False
···Opcion 1
···Opcion 2

En tiempo de diseño SIEMPRE se va a ver el borde con titulo, una vez que presionas F5 ya no se deberia ver :)

Eso ya lo se ¬¬ Se ve incluso si lo Compilo y lo pruebo Fuera del IDE. Y es así precisamente como tengo armado el MenuPopUP
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: raul338 en 10 Diciembre 2010, 14:10 PM
Bueno bueno che, era una aclaración, no todos nacen sabiendo :xD

Aunque la respuesta de PsYkE1 (a.k.a Mr. Frog, cambio su nick para que el FBI no lo encuentre :xD :xD) funciona, lo probe aunque esta linea

Código (vb) [Seleccionar]
Call SetWindowPos(Me.hWnd, 0&, 0&, 0&, 0&, 0&, SWP_FlAGS)
es completamente innecesaria, esa linea pone el form encima de todo y no es lo que se pide :rolleyes:

Saludos!
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 10 Diciembre 2010, 14:13 PM
Cita de: raul338 en 10 Diciembre 2010, 14:10 PM
Bueno bueno che, era una aclaración, no todos nacen sabiendo :xD

Aunque la respuesta de PsYkE1 (a.k.a Mr. Frog, cambio su nick para que el FBI no lo encuentre :xD :xD) funciona, lo probe aunque esta linea

Código (vb) [Seleccionar]
Call SetWindowPos(Me.hWnd, 0&, 0&, 0&, 0&, 0&, SWP_FlAGS)
es completamente innecesaria, esa linea pone el form encima de todo y no es lo que se pide :rolleyes:

Saludos!

Si es verdad, yo en Mi source la saque la Linea esa...
Título: [OFF TOPIC]
Publicado por: 79137913 en 10 Diciembre 2010, 14:59 PM
HOLA!!!
[OFF TOPIC]

Cita de: raul338 en 10 Diciembre 2010, 14:10 PM
PsYkE1 (a.k.a Mr. Frog, cambio su nick para que el FBI no lo encuentre :xD :xD)

JAJAJA lol  ;-) ;-) ;-) ;-) ;-)

GRACIAS POR LEER!!!
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: Psyke1 en 10 Diciembre 2010, 15:08 PM
Ya verás Raul!!  :(  :laugh:
Tenia la funcion hecha dde otro proyecto, de ahi lo de SetWindowsPos. :silbar:

Ya edité el post... :P

DoEvents! :P
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 10 Diciembre 2010, 15:20 PM
osea, anda igual que el que pusiste Inicialmente... Muestra el Marco hasta que lo minimizas y lo Volvés a Maximizar :S
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: Psyke1 en 10 Diciembre 2010, 15:57 PM
.
Sorry :silbar:
Lo actualicé... de nuevo.  ;)
Mira a ver si así funciona... :rolleyes:

DoEvents! :P
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 10 Diciembre 2010, 16:28 PM
Cita de: Mr. Frog © en 10 Diciembre 2010, 15:57 PM
.
Sorry :silbar:
Lo actualicé... de nuevo.  ;)
Mira a ver si así funciona... :rolleyes:

DoEvents! :P

Osea funciona Como los demás Hasta que No Minimizas no se va el Borde...:/ sera mi pc? Cuando le Puse BorderStyle0 A un Form "Limpio" Andaba Perfecto sin usar la API.

Lee El MP que te mande Mr. Frog ;)
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: Dessa en 10 Diciembre 2010, 16:31 PM
EDITO

Yo entendí que lo que se pedia era esto:

http://www.megaupload.com/?d=TE6EF8Q0 (http://www.megaupload.com/?d=TE6EF8Q0)

La linea:

Call SetWindowPos(Me.hwnd, &H0, &H0, &H0, &H0, &H0, &H27)

No es necesaria en WXP-SP3, pero sí por Ej en W-Millenium, tal ves en tambien sea sea necesaria wn WXP-SP1 o SP2 o Sin SP


Cambio & fuera









Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 10 Diciembre 2010, 20:59 PM
Cita de: Dessa en 10 Diciembre 2010, 16:31 PM
EDITO

Yo entendí que lo que se pedia era esto:

http://www.megaupload.com/?d=TE6EF8Q0 (http://www.megaupload.com/?d=TE6EF8Q0)

La linea:

Call SetWindowPos(Me.hwnd, &H0, &H0, &H0, &H0, &H0, &H27)

No es necesaria en WXP-SP3, pero sí por Ej en W-Millenium, tal ves en tambien sea sea necesaria wn WXP-SP1 o SP2 o Sin SP

Cambio & fuera

Si Bueno Yo Lo Uso en W$7 Y el Source que Subiste es lo mismo que tengo yo... y Falla
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: Psyke1 en 10 Diciembre 2010, 21:34 PM
Revisa el codigo, seguro que solo copiaste mi funcion...
Fijate en esto:
Citar
Código (vb,1) [Seleccionar]

Private Sub Form_Activate()
   Call BorderStyleNone(True)
End Sub
Cada vez que se activa la ventana quita el borde, de este modo si se minimiza al activar la ventana vuelves a quitarlo.

LINK ACTUALIZADO

Un ejemplo:
http://www.mediafire.com/?vr444098o7ndn02

DoEvents! :P
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 11 Diciembre 2010, 02:42 AM
Noo Sigue Fallando  :-( No tiene Arreglo
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: BlackZeroX en 13 Diciembre 2010, 03:46 AM
.
Quiero creer que es por el Theme Aero en W$7 en los forms, busca un codigo que publico Skyweb07/09.

Dulces Lunas!¡.
Título: Re: [Ayuda] BorderStyle = 0-None y no pasa nada ¡!¡!
Publicado por: agus0 en 13 Diciembre 2010, 03:53 AM
Cita de: BlackZeroX▓▓▒▒░░ en 13 Diciembre 2010, 03:46 AM
.
Quiero creer que es por el Theme Aero en W$7 en los forms, busca un codigo que publico Skyweb07/09.

Dulces Lunas!¡.

No Black, Uso Windows Clásico Yo. No utilizo Aero, Ni windows 7, USO EL CLÁSICO de WIN 2000 Jajaja