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

    [VB] Nascondere la X del form...

    ...Ciao ragazzi.

    Ho fatto una ricerca per vedere se esisteva già la soluzione al mio quesito, ma ho trovato solo la possibilità di disabilitare la X del form, cosa che attualmente è già presente sul mio progetto.
    Io ho la necessità di toglierla proprio, solo che non posso impostare la proprietà ControlBox del form su False, perchè in questo modo mi si toglie anche l'icona che a me invece serve.

    qualcuno di voi conosce l'API di Win deputata per questo compito?
    o qualche altro sistema?

    Grazie a tutti ragazzi.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  2. #2
    codice:
    'Incollare queste dichiarazione in un modulo .bas:
    Declare Function GetSystemMenu Lib "user32" _
        (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Declare Function GetMenuItemCount Lib "user32" _
        (ByVal hMenu As Long) As Long
    Declare Function DrawMenuBar Lib "user32" _
        (ByVal hwnd As Long) As Long
    Declare Function RemoveMenu Lib "user32" _
        (ByVal hMenu As Long, ByVal nPosition As Long, _
        ByVal wFlags As Long) As Long
    Public Const MF_BYPOSITION = &H400&
    Public Const MF_REMOVE = &H1000&
    '
    'Incollare il seguente codice nel form
    '
    Private Sub Form_Load()
        Dim hSysMenu As Long
        Dim nCnt As Long
        ' Mostra il form
        Me.Show
        ' Acquisisce l'handle del menù di sistema
        ' (Ripristina, Ingrandisci, Sposta, Chiudi etc.)
        hSysMenu = GetSystemMenu(Me.hwnd, False)
        If hSysMenu Then
            ' Acquisisce il numero delle voci nel menù di sistema
            nCnt = GetMenuItemCount(hSysMenu)
            If nCnt Then
                ' Il conteggio del menù è basato su 0 (0, 1, 2, 3...)
                RemoveMenu hSysMenu, nCnt - 1, _
                    MF_BYPOSITION Or MF_REMOVE
                RemoveMenu hSysMenu, nCnt - 2, _
                    MF_BYPOSITION Or MF_REMOVE ' Rimuove il separatore
                    DrawMenuBar Me.hwnd
                'Forza il ridisegno della barra del titolo, disabilitando
                'la X
                Me.Caption = "Prova a chiudermi!"
            End If
        End If
    End Sub
    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

  3. #3
    xegallo, ti ringrazio innanzi tutto x l'aiuto, ma il codice che mi hai postato, disabilita e non nasconde la X.
    a me purtroppo serve di toglierla proprio, senza però togliere l'icona.
    Tu sai come fare?


    tra l'altro x disabiiltare la X io uso questo codice:
    codice:
    'in un modulo .bas
    
    'declare per disabilitare il pulsante di chiusura "X" dei form 
    Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, & _
        ByVal bRevert As Integer) As Integer
    Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Integer, & _
        ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
    Public Const MF_BYPOSITION = &H400
    
    'nel form
    
    Private Sub Form_Load()
    
            'disabilito il tasto di chiusura "X" del form
            SystemMenu% = GetSystemMenu(hwnd, 0)
            Res% = RemoveMenu(SystemMenu%, 6, MF_BYPOSITION)
    
    End Sub


    Grazie bello......sei sempre gentilissimo...:gren:

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    mi spiace ma per toglierla diventa un casino
    dovresti impostare la proprietà controlbox su false
    e lavorare sulla
    bitbtl in gdi.exe
    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

  5. #5
    Originariamente inviato da xegallo
    mi spiace ma per toglierla diventa un casino
    dovresti impostare la proprietà controlbox su false
    e lavorare sulla
    bitbtl in gdi.exe
    ma io non posso impostare la proprietà ControlBox su False, mi si porta via pure l'icona e a me serve di vederla.

    xegallo, mi stai dicendo che non esiste un'APETTA in grado di fare la magia per far sparire la X?...


    PS:
    siccome io sono ancora una giovanissima programmatrice e di computer non ne capisco moltissimo in confronto a molte persone che frequentano questo forum, mi spiegheresti cosa significa ciò:
    bitbtl in gdi.exe


    ...grazie ancora, sei un tesorone...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6
    Originariamente inviato da ladyBlu

    ma io non posso impostare la proprietà ControlBox su False, mi si porta via pure l'icona e a me serve di vederla.

    xegallo, mi stai dicendo che non esiste un'APETTA in grado di fare la magia per far sparire la X?...


    PS:
    siccome io sono ancora una giovanissima programmatrice e di computer non ne capisco moltissimo in confronto a molte persone che frequentano questo forum, mi spiegheresti cosa significa ciò:
    bitbtl in gdi.exe


    ...grazie ancora, sei un tesorone...
    il file gdi è quello che si occupa di tutta la grafica che usi in vb e non solo
    ed esporta la funzione bitbtl

    Private Declare Function BitBlt Lib "gdi32" _
    (ByVal hDestDC As Long, ByVal x As Long, _
    ByVal y As Long, ByVal nWidth As Long, _
    ByVal nHeight As Long, ByVal hSrcDC As Long, _
    ByVal xSrc As Long, ByVal ySrc As Long, _
    ByVal dwRop As Long) As Long
    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

  7. #7
    Originariamente inviato da xegallo

    il file gdi è quello che si occupa di tutta la grafica che usi in vb e non solo
    ed esporta la funzione bitbtl

    Private Declare Function BitBlt Lib "gdi32" _
    (ByVal hDestDC As Long, ByVal x As Long, _
    ByVal y As Long, ByVal nWidth As Long, _
    ByVal nHeight As Long, ByVal hSrcDC As Long, _
    ByVal xSrc As Long, ByVal ySrc As Long, _
    ByVal dwRop As Long) As Long
    ho capito. e quindi, questa api a che serve?...:master:

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  8. #8
    Originariamente inviato da ladyBlu


    ho capito. e quindi, questa api a che serve?...:master:
    a ridisegnare la barra e l'icona twip per twip
    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
    Originariamente inviato da xegallo

    a ridisegnare la barra e l'icona twip per twip
    ...mi sa che è troppo complicata la questione......cavoli, a me serviva proprio.
    ma non si può proprio fare in un altro modo?

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  10. #10
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Se non erro esistono le API anche per ridisegnare la captionbar...
    Potresti togliere direttamente la caption al form, quindi ridisegnarla senza la X.. però dovresti gestire anche il fatto che uno cliccando sulla captionbar sposta il form, il fatto che se clicca nell'icona appare il menu di sistema, ... diventa un po' un casino...

    Cmque:
    Declare Function DrawCaption Lib "user32" Alias "DrawCaption" (ByVal hWnd As Long, ByVal hDC As Long, pcRect As Rect, ByVal un As Long) As Long

    Declare Function DrawEdge Lib "user32" Alias "DrawEdge" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long

    Su www.allapi.net trovi tutte le spiegazioni ed esempi.

    Zenti ma... tenersi la X disabilitata?

    P.S. non sono certo al 100% che ci siano altri metodi più semplici, quindi...


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 © 2024 vBulletin Solutions, Inc. All rights reserved.