Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [VBA] bloccare il tasto X di chiusura

    Come posso disabilitare o nascondere la X di chiusura di un form in VBA?
    Grazie
    - - - Salvatore - - -

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    per VBA c'è il subforum: ti sposto lì
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    Originariamente inviato da MMarzia
    per VBA c'è il subforum: ti sposto lì
    ops.. scusa non avevo letto..
    - - - Salvatore - - -

  4. #4
    codice:
    Private Sub Form_QueryUnload(cancel As Integer, UnloadMode As Integer)
        Select Case UnloadMode
            Case 1
                cancel = False
            Case Else
                cancel = True
        End Select
    End Sub
    ciao
    I'll see you on the dark side of the moon

  5. #5
    codice:
    'menu flags
    Public Const MF_BYCOMMAND As Long = &H0
    Public Const MF_BYPOSITION As Long = &H400
    Public Const MF_REMOVE As Long = &H1000
    
    Public Const MIIM_STATE As Long = &H1
    Public Const MIIM_ID As Long = &H2
    Public Const MIIM_SUBMENU As Long = &H4
    Public Const MIIM_CHECKMARKS As Long = &H8
    Public Const MIIM_TYPE As Long = &H10
    Public Const MIIM_DATA As Long = &H20
    Public Const MFT_STRING As Long = &H0
    Public Const MFT_RADIOCHECK As Long = &H200
    Public Const MFS_DISABLED As Long = &H3
    
    Public Type MENUITEMINFO
        cbSize As Long
        fMask As Long
        fType As Long
        fState As Long
        wID As Long
        hSubMenu As Long
        hbmpChecked As Long
        hbmpUnchecked As Long
        dwItemData As Long
        dwTypeData As String
        cch As Long
    End Type
    
    Public Declare Function GetMenuItemInfo Lib "user32" _
        Alias "GetMenuItemInfoA" _
       (ByVal hMenu As Long, ByVal uItem As Long, _
        ByVal fByPosition As Long, lpmii As MENUITEMINFO) 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
        
    Public Declare Function DrawMenuBar Lib "user32" _
       (ByVal hwnd As Long) As Long
    
    Public 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
    
    Public Sub RemoveCloseMenu(frm As Form)
    Dim c As Long
    Dim hMenu As Long
    Dim mInfo As MENUITEMINFO
    Dim Pos As Long
      
        'Trova l'hndle del menu
        hMenu = GetSystemMenu(frm.hwnd, 0)
    
        'scorre i menu all'indietro
        For c = GetMenuItemCount(hMenu) To 0 Step -1
           
            mInfo.cbSize = Len(mInfo)
            mInfo.fMask = MIIM_TYPE Or MIIM_ID
            mInfo.fType = MFT_STRING
            mInfo.dwTypeData = SPACE$(256)
            mInfo.cch = Len(mInfo.dwTypeData)
            'ottieni la struttura MENUITEMINFO per il menu corrente
            If GetMenuItemInfo(hMenu, c, True, mInfo) = 1 Then
             
                If (mInfo.wID = 61536) Then 'id del menu X
                    'toglie la X
                    Call RemoveMenu(hMenu, c, MF_REMOVE Or MF_BYPOSITION)
                    'toglie il separatore prima della X
                    Call RemoveMenu(hMenu, c - 1, MF_REMOVE Or MF_BYPOSITION)
                End If
            End If
        Next
       
        Call SetWindowPos(frm.hwnd, 0, 0, 0, 0, 0, SWP_FLAGS)
        Call DrawMenuBar(frm.hwnd)
       
    End Sub
    per usarla

    codice:
       call RemoveCloseMenu(nomeform)
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  6. #6

    grazie a tutti quanti

    grazie a tutti quanti.. provo stasera a farlo..
    - - - Salvatore - - -

  7. #7
    Utente di HTML.it L'avatar di goku370
    Registrato dal
    Oct 2003
    Messaggi
    569
    Sicuramente la soluzione di xegallo è più "professionale" ma non so se ne valga la pena usare tutto quel codice...
    Una tecnologia sufficientemente avanzata è indistinguibile dalla magia. Terza legge di Clarke

  8. #8
    Originariamente inviato da goku370
    Sicuramente la soluzione di xegallo è più "professionale" ma non so se ne valga la pena usare tutto quel codice...
    non usarlo

    lo metti in un modulo con le funzioni generali e per usarlo basta chiamare una funzione
    sarà meglio che l'utente preme X e non succede niente?
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  9. #9
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247
    Ciao xegallo prima di tutto grazie per il tuo codice.
    Avrei una domanda stupida:
    per disattivare il bottone di ingrandimento della finestra come dovrei fare a partire dal tuo codice?

    Grazie per la risposta.
    Andrea

  10. #10
    Originariamente inviato da quincy
    Ciao xegallo prima di tutto grazie per il tuo codice.
    Avrei una domanda stupida:
    per disattivare il bottone di ingrandimento della finestra come dovrei fare a partire dal tuo codice?

    Grazie per la risposta.
    codice:
    'toglie la X
    Call RemoveMenu(hMenu, c, MF_REMOVE Or MF_BYPOSITION)
    'toglie il maxbutton
    Call RemoveMenu(hMenu, c - 2, MF_REMOVE Or MF_BYPOSITION)
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.