Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    vb6 - modifica font balloon

    ciao amici
    ritorno con una problema, per me, complicatissimo
    scopiazzando su internet sono riuscito a creare un aiuto
    interattivo tramite fumetti che appaiono al passaggio del
    mouse sul relativo campo; riesco a modificare sia il colore
    di primo piano che il colore di sfondo
    quello che vorrei fare, e che non trovato, e' modificare anche
    il font negli attributi name, size e bold
    qualcuno puo' dirmi se e' possibile, e come?
    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Senza vedere il codice di cui parliamo mi sembra impossibile
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

    vb6 - modifica font in balloon

    ciao oregon
    come faccio ad allegare la classe che utilizzo?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Fai un copia incolla
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: vb6 - modifica font in balloon

    Originariamente inviato da Luberto Mario
    ciao oregon
    come faccio ad allegare la classe che utilizzo?
    Post il link da dove hai scopiazzato il codice...

  6. #6

    vb6 - modifica font in balloon

    purtroppo non mi sono segnato il link, e non
    riesco piu' a trovarlo
    faccio il copia-incolla della classe
    codice:
    Option Explicit
    Private Enum TT_FLAGS
        TTF_IDISHWND = &H1
        TTF_SUBCLASS = &H10
    End Enum
    
    Private Enum TT_Msgs
        #If UNICODE Then
            TTM_ADDTOOL = (WM_USER + 50)
            TTM_DELTOOL = (WM_USER + 51)
            TTM_UPDATETIPTEXT = (WM_USER + 57)
            TTM_ENUMTOOLS = (WM_USER + 58)
        #Else
            TTM_ADDTOOL = (&H400 + 4)
            TTM_DELTOOL = (&H400 + 5)
            TTM_UPDATETIPTEXT = (&H400 + 12)
            TTM_ENUMTOOLS = (&H400 + 14)
        #End If
        TTM_SETTIPBKCOLOR = (&H400 + 19)
        TTM_SETTIPtextCOLOR = (&H400 + 20)
        TTM_GETDELAYTIME = (&H400 + 21)
        TTM_GETTIPBKCOLOR = (&H400 + 22)
        TTM_SETMAXTIPWIDTH = (&H400 + 24)
        TTM_GETMAXTIPWIDTH = (&H400 + 25)
    End Enum
    
    Enum Style
        WinStandard = 0
        Fumetto = 1
    End Enum
    
    Public Enum ttIconType
        TTNoIcon = 0
        TTIconInfo = 1
        TTIconWarning = 2
        TTIconError = 3
    End Enum
    
    Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End Type
    
    Private Type TOOLINFO
        cbSize As Long
        uFlags As TT_FLAGS
        hwnd As Long
        uId As Long
        RECT As RECT
        hinst As Long
        lpszText As String
        lParam As Long
    End Type
    
    Private §Hwnd                   As Long
    Private §MaxFumetti             As Long
    Private §HelpOk                 As Boolean
    Private §Stile                  As Style
    Private §Titolo                 As String
    Private §Icona                  As Long
    Private §TempoRitardo           As Long
    Private §TempoVisualizzazione   As Long
    Private TI                      As TOOLINFO
    Dim §Help                       As String
    
    
    
    Rem •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• _
    •   inizializzazione  della  classe                                                       • _
    ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
    Private Sub Class_Initialize()
        ' azzeramento  della  memoria
        api_AzzeraMemoria TI, Len(TI)
        If §Hwnd <> 0 Then Call api_DistruggeFinestra(§Hwnd)
        
        ' inizializzazione variabili
        §HelpOk = False
        §Stile = Fumetto
        §Titolo = " "           ' importante che la stringa non sia vuota
        §Icona = 0
        §TempoRitardo = 0
        §TempoVisualizzazione = 5000
    End Sub
    
    
    
    Rem •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• _
    •   crea  un  nuovo  help                                                                 • _
    •       INPUT:    controllo  maschera                                                     • _
    •                 nome  del  campo                                                        • _
    •       OUTPUT:   true  se  andato  a  buon  fine                                         • _
    ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
    Public Function NuovoHelp(§_Frm As Form, _
                              §_Nome As String) _
                    As Boolean
    Dim lWinStyle As Long
        On Error GoTo Errore
    
        §Help = §_Nome
        §retVal = api_InviaMessaggioLong(§Hwnd, (&H400 + 3), 2, §TempoVisualizzazione)
        §retVal = api_InviaMessaggioLong(§Hwnd, (&H400 + 3), 3, §TempoRitardo)
    
        lWinStyle = &H1 Or &H2
        If §Stile = Fumetto Then lWinStyle = lWinStyle Or &H40
        If (§Hwnd = 0) Then
            Call api_IniziaControlli
            §Hwnd = api_CreaWindow(0&, "tooltips_class32", vbNullString, lWinStyle, 0, _
                                   0, 0, 0, §_Frm.hwnd, 0, App.hInstance, 0)
        End If
      
        §HelpOk = CBool(§Hwnd)
        If §HelpOk = False Then
            NuovoHelp = False
        Else
            NuovoHelp = True
            §retVal = api_InviaMessaggioAny(§Hwnd, (&H400 + 4), 0&, TI)
            §retVal = api_InviaMessaggioAny(§Hwnd, (&H400 + 32), CLng(§Icona), ByVal §Titolo)
        End If
    Exit Function
    
    Errore:
        §HelpOk = False
        NuovoHelp = False
        Err.Clear
    End Function
    
    
    
    '#############################################################
    '#   termina  la  classe                                                                   #
    '##############################################################
    Private Sub Class_Terminate()
    Dim nItems  As Long
        If §Hwnd Then
            nItems = ToolCount
            
            Do Until nItems = 0
                If api_InviaMessaggioAny(§Hwnd, TTM_ENUMTOOLS, (0), TI) Then
                    RemoveToolHwnd TI.uId
                End If
                nItems = ToolCount
            Loop
            api_AzzeraMemoria TI, Len(TI)
            
            api_DistruggeFinestra (§Hwnd)
        End If
    End Sub
    
    
    
    Rem ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •   imposta  il  tempo  di  ritardo                                                       • _
    •       INPUT:    numero  di  millisecondi                                                • _
    •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
    Public Property Let TempoRitardo(§_Ritardo As Long)
        If §Hwnd <> 0 Then Exit Property ' help  gia' creato; impossibile  modificare
        §TempoRitardo = §_Ritardo
        api_InviaMessaggioAny §Hwnd, (&H400 + 3), 3, §TempoRitardo
    End Property
    
    
    
    Rem •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
    •   imposta  il  tempo  di  visualizzazione                                               • _
    •       INPUT:    numero  di  millisecondi                                                • _
    •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
    Public Property Let TempoVisualizzazione(§_Visualizzazione As Long)
        §TempoVisualizzazione = §_Visualizzazione
        api_InviaMessaggioAny §Hwnd, (&H400 + 3), 2, §TempoRitardo
    End Property
    
    
    
    Rem ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •   imposta  il  titolo  dei  fumetti                                                     • _
    •       INPUT:    titolo  dell' help                                                      • _
    •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
    Public Property Let Titolo(§_Titolo As String)
        If §_Titolo = "" Then §_Titolo = " "
        §Titolo = §_Titolo
        api_InviaMessaggioAny §Hwnd, (&H400 + 32), CLng(§Icona), ByVal §Titolo
    End Property
    
    
    
    Rem ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •   imposta  l' icona  dei  fumetti                                                       • _
    •       INPUT:    icona  dell' help                                                       • _
    •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
    Public Property Let Icona(§_Icona As ttIconType)
        §Icona = §_Icona
        If §Titolo = "" Then §Titolo = " "
        api_InviaMessaggioAny §Hwnd, (&H400 + 32), CLng(§Icona), ByVal §Titolo
    End Property
    
    
    
    Rem •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
    •   aggiunge  una  voce  di  help                                                         • _
    •       INPUT:    controllo  su  cui  associare  l' help                                  • _
    •         OPT     testo  dell' help                                                       • _
    •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
    Public Function Add(§_Ctrl As Control, _
               Optional §_Text As String = "") _
           As Boolean
    Dim §Visibile       As Long
    Dim §Ritardo        As Long
    Dim §BackColor      As Long
    Dim §ForeColor      As Long
    
        If §HelpOk = False Or _
           §Hwnd = 0 Or _
           GetToolInfo(§_Ctrl.hwnd, TI) = True Then Exit Function
            
        With TI
            .cbSize = Len(TI)
            .uFlags = TTF_SUBCLASS Or &H1
            .hwnd = §_Ctrl.Container.hwnd
            .uId = §_Ctrl.hwnd
            
            If Len(§_Text) Then
                .lpszText = §_Text
            Else
                .lpszText = ""
            End If
            §MaxFumetti = Max(§MaxFumetti, Len(.lpszText) + 1)
        End With
                
        ' imposta  i  parametri  corrispondenti  al  tipo  di  help
        Select Case §Help
            Case "Form"
                §Visibile = £PVM(PVM_HelpFormVisible)
                §Ritardo = £PVM(PVM_HelpFormRitardo)
                §BackColor = £PVM(PVM_HelpFormBackColor)
                §ForeColor = £PVM(PVM_HelpFormForeColor)
            Case "Barra"
                §Visibile = £PVM(PVM_HelpBarraVisible)
                §Ritardo = £PVM(PVM_HelpBarraRitardo)
                §BackColor = £PVM(PVM_HelpBarraBackColor)
                §ForeColor = £PVM(PVM_HelpBarraForeColor)
            Case "Opzione"
                §Visibile = £PVM(PVM_HelpOpzioneVisible)
                §Ritardo = £PVM(PVM_HelpOpzioneRitardo)
                §BackColor = £PVM(PVM_HelpOpzioneTitoloBackColor)
                §ForeColor = £PVM(PVM_HelpOpzioneTitoloForeColor)
        End Select
            
        Add = api_InviaMessaggioAny(§Hwnd, TTM_ADDTOOL, 0, TI)
        §retVal = api_InviaMessaggioLong(§Hwnd, (&H400 + 3), 2, §Visibile)
        §retVal = api_InviaMessaggioLong(§Hwnd, (&H400 + 3), 3, §Ritardo)
        §retVal = api_InviaMessaggioLong(§Hwnd, TTM_SETTIPBKCOLOR, §BackColor, 0)
        §retVal = api_InviaMessaggioLong(§Hwnd, TTM_SETTIPtextCOLOR, §ForeColor, 0)
    End Function
    
    
    
    '##############################################################
    '#   legge  informazioni  fumetto                                                          #
    '##############################################################
    Private Function GetToolInfo(hwndTool As Long, _
                                 TI As TOOLINFO, _
                        Optional fGetText As Boolean = False) As Boolean
    Dim nItems As Integer
    Dim I As Integer
        TI.cbSize = Len(TI)
        If fGetText Then TI.lpszText = String$(§MaxFumetti, 0)
        nItems = ToolCount
        For I = 0 To nItems - 1
            If api_InviaMessaggioAny(§Hwnd, TTM_ENUMTOOLS, (I), TI) Then
                If (hwndTool = TI.uId) Then
                    GetToolInfo = True
                    Exit Function
                End If
            End If
        Next
    End Function
    
    
    
    '##############################################################
    '#   trova  il  parametro  massimo                                                         #
    '##############################################################
    Private Function Max(param1 As Long, _
                         param2 As Long) _
            As Long
        If param1 > param2 Then _
            Max = param1 Else Max = param2
    End Function
    
    
    
    '##############################################################
    '#   ricava  il  numero  di  fumetti  presenti  nella classe                               #
    '##############################################################
    Public Property Get ToolCount() As Integer
        If (§Hwnd = 0) Then Exit Property
        ToolCount = api_InviaMessaggioAny(§Hwnd, (&H400 + 13), 0, 0)
    End Property
    
    
    
    '##############################################################
    '#   rimuove  tutti  i  fumetti                                                            #
    '##############################################################
    Public Function RemoveToolHwnd(CTRLHwnd As Long) _
           As Boolean
        If (hwnd = 0) Then Exit Function
        If GetToolInfo(CTRLHwnd, TI) Then
            api_InviaMessaggioAny §Hwnd, TTM_DELTOOL, 0, TI
            RemoveToolHwnd = True
        End If
    End Function
    
    
    
    '##############################################################
    '#   ricava  identificativo  del  fumetto                                                  #
    '##############################################################
    Public Property Get hwnd() As Long
        hwnd = §Hwnd
    End Property
    
    
    
    '##############################################################
    '#   cancella  una  voce                                                                   #
    '##############################################################
    Public Function Del(CTRL As Control) As Boolean
        On Error Resume Next
        If (§Hwnd > 0) And GetToolInfo(CTRL.hwnd, TI) Then _
            Call api_InviaMessaggioAny(§Hwnd, 1029, 0, TI)
        On Error GoTo 0
    End Function

  7. #7

    Moderazione

    Ti ricordo che il codice va specificato tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione.

    Ora correggo io, in futuro imposta correttamente la formattazione fin da subito.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.