PopAds.net - The Best Popunder Adnetwork

Stili delle Userform

  • INFORMAZIONI di ENZO
    CIAO A TUTTI, AVREI UN PROBLEMA DI QUESTO TIPO
    RICHIAMANDO UNA QUALSIASI USERFORM APPARE IN ALTO A DESTRA UNA X ATTTRAVERSO LA QUALE SI PUO' CHIUDERE LA STESSA USERFORM.
    QUALCUNO SA DIRMI COME FARE PER NON POTERLA AVERE O VEDERE?
    P.S. IL COMANDO ATTRAVERSO IL QUALE SI PUO' FAR SI CHE CLICCANDOCI SOPRA NON SI CHIUDA, LO CONOSCO MA A ME SERVIVA NON POTERLA VEDERE
    GRAZIE

    di Apoben64
    Ciao Enzo, diciamo che la risposta alla tua domanda non è facile, però ho trovato un post italiano che rimanda anche ad un sito in inglese dove puoi trovare almeno una soluzione , visto che l'istruzione indicata ancora non l'ho ben capita. Ma può essere un inizio . Questo è il link: Link
    Comunque la ricerca avanza !!!! Un caro saluto

    di Apoben64
    Trovato!!!!! , sul sito :http://www.oaltd.co.uk/Excel/Default.htm
    il file di esempio "FormFun.xls" simula varie opzioni per le userform, tra cui non visualizzare la X e addirittura eleminare " caption" o il titolo. Il difficile è estrapolare dall'esempio l'istruzione specifica . Mauro ci puoi dare una mano ? . Se volete vi allungo il file per email .
    Ciao , spero di sentirvi presto.
    Questa soluzione può rendere ancora più interessanti i nostri lavori !!!!!

    di Apoben64
    La soluzione del quesito:
    Eliminare "fisicamente" nel form la X di destra.
    è questa
    ****************************************************
    Da mettere delle dichiarazioni generali del modulo
    che ha nome " modNoClose"
    ****************************************************
    Private Declare Function FindWindow Lib "user32" _
    Alias "FindWindowA" _
    (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

    'Get the current window style
    Private Declare Function GetWindowLong Lib "user32" _
    Alias "GetWindowLongA" _
    (ByVal hWnd As Long, _
    ByVal nIndex As Long) As Long

    'Set the new window style
    Private Declare Function SetWindowLong Lib "user32" _
    Alias "SetWindowLongA" (ByVal hWnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long

    Const WS_SYSMENU = &H80000
    Const GWL_STYLE = (-16)

    'Routine to hide the close button on a userform

    Sub HideCloseButton(oDialog As Object)

    Dim hWnd As Long, lStyle As Long


    Select Case Int(Val(Application.Version))
    Case 8 'Excel 97
    hWnd = FindWindow("ThunderXFrame", oDialog.Caption)
    Case 9 'Excel 2000+
    hWnd = FindWindow("ThunderDFrame", oDialog.Caption)
    End Select


    'Get the current window style
    lStyle = GetWindowLong(hWnd, GWL_STYLE)

    'Turn off the System Menu bit
    SetWindowLong hWnd, GWL_STYLE, lStyle And Not WS_SYSMENU

    End Sub
    *********************************************
    Da inserire nel modulo Userform
    *********************************************
    Private Sub UserForm_Initialize()
    HideCloseButton Me
    End Sub
    **********************************************
    Ciao !

    di Apoben64
    Sarebbe bello però sviluppare altre funzioni che agiscono sul form . Ci proviamo ?

    di Mauro
    Ciao a tutti, scusate il ritardo ma ho avuto da fare. Questa è veramente una discussione interessante. Dopo avere visto gli spunti di Luca, ho scritto di slancio il seguente Tutorial.
    ***
    Complimenti Luca, buon lavoro. Se hai altre idee o ti va approfondire qualche aspetto. Ti do lo spazio x pubblicare un tuo tutorial. Ciao

    di enzo
    GRAZIE APO SEI STATO BRAVISSIMO