| 
	
		|  Autor | Tema: Ventana siempre visible  (Leído 2,431 veces) |  
	| 
			| 
					
						| TheJucas21 
								
								 Desconectado 
								Mensajes: 43
								
								
								
								
								
								   | 
 
Como veran en el titulo.Lo que busco que es lo siguiente:
 
 Yo programo X programas, y quiero lograr que esten SIEMPRE visibles osea, que aunque abras el navegador ese .exe este delante de el y no que uses otro el otro tambien lo pase...
 Se entiende?
 
 Eso me serviria MUCHO y lo vi en varios programas.
 
 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Cj2009z 
								
								 Desconectado 
								Mensajes: 52
								
								
								
								
								
								   | 
 
Necesitas dos commandbutton en el proyecto y pega este código: 'Constantes para pasarle a la función Api SetWindowPosConst SWP_NOMOVE = 2
 Const SWP_NOSIZE = 1
 Const HWND_TOPMOST = -1
 Const HWND_NOTOPMOST = -2 '
 
 ' Función Api SetWindowPos
 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
 
 'En el primer parámetro se le pasa el Hwnd de la ventana
 'El segundo es la constante que permite hacer el OnTop
 'Los parámetros que están en 0 son las coordenadas, o sea la _
 pocición, obviamente opcionales
 'El último parámetro es para que al establecer el OnTop la ventana _
 no se mueva de lugar y no se redimensione
 
 Private Sub Command1_Click()
 SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
 SWP_NOMOVE Or SWP_NOSIZE
 End Sub
 
 'Colocamos la ventana en su posicion original:
 Private Sub Command2_Click()
 'Hacemos lo mismo que en el evento anterior, pero pasandole la otra constante
 'para que deje de estar siempre encima de las demás, estado normal
 SetWindowPos Me.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
 End Sub
 
 Private Sub Form_Load()
 Command1.Caption = "Siempre visible (Always Ontop)"
 Command2.Caption = "Ventana Normal"
 End Sub
 
espero que te sirva.
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| TheJucas21 
								
								 Desconectado 
								Mensajes: 43
								
								
								
								
								
								   | 
 
Me manda error en esta parte: ' Función Api SetWindowPosPrivate 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
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Cj2009z 
								
								 Desconectado 
								Mensajes: 52
								
								
								
								
								
								   | 
 
verifica que estes llamando correctamente la función: verifica esto: SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
Aqui estas indicando que la ventana este siempre visible(sobre todas). SetWindowPos Me.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
y esta es para que la ventana quede normal. y por último las constantes: Const SWP_NOMOVE = 2Const SWP_NOSIZE = 1
 Const HWND_TOPMOST = -1
 Const HWND_NOTOPMOST = -2
 
el código funciona corretamente, solo es que verifiques que lo hayas copiado bien. |  
						| 
								|  |  
								| « Última modificación: 17 Mayo 2014, 04:25 am por Cj2009z » |  En línea | 
 
 |  |  |  | 
			| 
					
						| TheJucas21 
								
								 Desconectado 
								Mensajes: 43
								
								
								
								
								
								   | 
 
Muchas Gracias! Este seria todo mi codigo del proyect asi para ver si funcionaba. Const SWP_NOMOVE = 2Const SWP_NOSIZE = 1
 Const HWND_TOPMOST = -1
 Const HWND_NOTOPMOST = -2 '
 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 Sub Command1_Click()
 SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
 SWP_NOMOVE Or SWP_NOSIZE
 End Sub
 
 Private Sub Command2_Click()
 'Hacemos lo mismo que en el evento anterior, pero pasandole la otra constante
 'para que deje de estar siempre encima de las demás, estado normal
 SetWindowPos Me.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
 End Sub
 
 Private Sub Form_Load()
 Command1.Caption = "Siempre visible"
 Command2.Caption = "Ventana Normal"
 End Sub
 
No se si es asi como quisiste decirmelo pero lo puse asi y funciono XD Gracias! Suerte! |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | como dejar un formulario siempre visible? Programación Visual Basic
 | G3r4rD | 1 | 4,162 |  1 Marzo 2006, 11:20 am por _Sergi_
 |  
						|   |   | Un formulario siempre VISIBLE Programación Visual Basic
 | Snort | 2 | 2,385 |  17 Octubre 2006, 18:19 pm por ranslsad
 |  
						|   |   | JAVA 3D: ¿cómo mantener un text2d siempre visible al rotar una escena grafica? Java
 | mikelonix | 0 | 1,591 |  25 Junio 2014, 12:27 pm por mikelonix
 |  
						|   |   | Cómo tener cualquier aplicación siempre visible en Windows 10 Noticias
 | wolfbcn | 0 | 1,788 |  10 Marzo 2019, 02:50 am por wolfbcn
 |  
						|   |   | Posicionar ventana hija siempre relativa a la ventana padre.- Scripting
 | El mas antiguo | 2 | 4,249 |  17 Agosto 2022, 14:34 pm por El mas antiguo
 |    |