 
			
				29/11/2006, 11:22
			
			
			     |  
        |     |    |    Fecha de Ingreso: enero-2006  Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?  
						Mensajes: 2.231
					  Antigüedad: 19 años, 10 meses Puntos: 19     |        |  
      http://www.vb-mundo.com/truco_progra...mover,-etc.htm  Cita:  Formularios que no se cierran con el botón (x), no se pueden mover, etc   
Si eliminamos opciones del menú de control (-) de un formulario impedimos que esas mismas acciones se puedan realizar de otras formas. Si quitamos la opción Cerrar el botón de cerrar el formulario (x) quedará dehabilitado. Si eliminamos la opción Mover el formulario no se podrá mover arratrándolo por la barra de título, etc.    
Veamos un ejemplo de cómo impedir el funcionamiento del botón Cerrar de la barra de título :    
Declaramos en un módulo :        
Codigo:-------------------------------------------------------------------------------- 
Public Const MF_BYPOSITION = &H400 
Public Const MF_REMOVE = &H1000 
Public Declare Function DrawMenuBar Lib `user32` _ 
      (ByVal hwnd As Long) As Long 
Public Declare Function GetMenuItemCount Lib `user32` _ 
      (ByVal hMenu As Long) As Long 
Public Declare Function GetSystemMenu Lib `user32` _ 
        (ByVal hwnd As Long, _ 
        ByVal bRevert As Long) As Long 
Public Declare Function RemoveMenu Lib `user32` _ 
        (ByVal hMenu As Long, _ 
        ByVal nPosition As Long, _ 
        ByVal wFlags As Long) As Long     
--------------------------------------------------------------------------------     
Y para deshabilitar el botón Cerrar eliminamos la opción Cerrar del menú :        
Codigo:-------------------------------------------------------------------------------- 
Dim hMenu As Long 
Dim menuItemCount As Long 
`Obtenemos un handle al menú de sistema del formulario 
hMenu = GetSystemMenu(Me.hwnd, 0) 
If hMenu Then 
    `Obtenemos el número de elementos del menú 
    menuItemCount = GetMenuItemCount(hMenu) 
    `Eliminamos el elemento Cerrar, que es el último 
    `Los elemento empiezan a numerarse en cero por lo que el  
    `último es menuItemCount - 1 
     Call RemoveMenu(hMenu, menuItemCount - 1, _ 
                      MF_REMOVE Or MF_BYPOSITION) 
    `Eliminamos la barra de separación que hay justo antes de la opción Cerrar 
    Call RemoveMenu(hMenu, menuItemCount - 2, _ 
                      MF_REMOVE Or MF_BYPOSITION) 
    `Forzamos el redibujado del menú. Esto refresca la barra de título  
    `y deja la X deshabilitada 
    Call DrawMenuBar(Me.hwnd) 
End If                   |