IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Effet Stabilo avec un Label


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut Effet Stabilo avec un Label
    Bonjour,

    J'aimerais faire un effet 'stabilo' sur une partie de texte d'un Label ou TextBox.
    J'ai pensé à utiliser un label 'stabilo' qui aurait une couleur de fond jaune par exemple et que je pourrais déformer et déplacer sur un autre Label qui n'aurait lui que du texte (ou un TextBox).
    Mais, comment rendre la couleur jaune de mon label 'stabilo' semi transparente afin de voir le texte sur le Label texte du dessous ?
    L'idéal étant bien évidemment de pouvoir ajuster le niveau de transparence du label 'stabilo' ?

    Par avance merci

    MarcVB6

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Salut

    Avec un label cela n'est pas des plus évidant, mais avec un RichTextbox c'est plus facile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Option Explicit
     
    Private Const LF_FACESIZE = 32
    Private Type CHARFORMAT2
        cbSize                              As Integer
        dwMask                              As Long
        dwEffects                           As Long
        yHeight                             As Long
        yOffset                             As Long
        crTextColor                         As Long
        bCharSet                            As Byte
        szFaceName(0 To LF_FACESIZE - 1)    As Byte
     
        wWeight                             As Integer
        sSpacing                            As Integer
        crBackColor                         As Long
        lLCID                               As Long
        dwReserved                          As Long
        sStyle                              As Integer
        bUnderlineType                      As Byte
        bRevAuthor                          As Byte
        bReserved1                          As Byte
    End Type
     
    Private Declare Function SendMessageA Lib "user32" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    '---------------------------------------------------------------------------------------------------------------------------------------
     
    Private Sub Form_Load()
    RichTextBox1.BackColor = &HFFFFFF
    End Sub
     
    Public Sub SurligneSelection(TextRichBox As RichTextBox, Optional vbColor As ColorConstants = vbYellow)
        Dim cf As CHARFORMAT2
        Const SCF_SELECTION     As Long = &H1
        Const EM_SETCHARFORMAT  As Long = &H444
        Const CFM_BACKCOLOR     As Long = &H4000000
     
        With cf
            .cbSize = LenB(cf)
            .dwMask = CFM_BACKCOLOR
            .crBackColor = vbColor
        End With
     
        Call SendMessageA(TextRichBox.hWnd, EM_SETCHARFORMAT, SCF_SELECTION, ByVal VarPtr(cf))
    End Sub
    Private Sub RichTextBox1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = vbLeftButton And Shift = vbCtrlMask Then 'Bt. droit + touche Ctrl pour surligner
        SurligneSelection RichTextBox1, vbGreen
    End If
    If Button = vbLeftButton And Shift = vbAltMask Then 'Bt. droit + touche Alt pour enlever le surlignage
        SurligneSelection RichTextBox1, RichTextBox1.BackColor
    End If
    End Sub
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut Effet Stabilo avec un Label
    Merci ProgElect,

    S'il existe une solution pour gérer la transparence d'un Label, je suis preneur.
    J'aimerais aussi pouvoir faire cet effet sur une image dans un PBox car j'aurai des textes dans des JPG ou BMP.

    Merci
    MarcVB6

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Re

    S'il existe une solution pour gérer la transparence d'un Label, je suis preneur.
    J'ai cette exemple de code qui n'est pas de moi, mais je ne l'ai pas retrouvé sur DVP.
    Fichiers attachés Fichiers attachés
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut Effet Stabilo avec un Label
    Merci ProgElect,

    Ca fonctionne. Il me reste à adapter cela pour le déplacement.
    C'est un peu énorme pour le simple effet recherché.
    Je mettrai un Résolu dans quelques temps. Peut-être quelqu'un aura t-il quelque chose de plus simple ...
    Merci encore et bonne journée.
    MarcVB6

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Re

    Plus simple, pour un Label
    Sur le Form, 1 PictureBox avec à l'intérieur, 1 Shape et 1 Label
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Option Explicit
     
    Private Sub Form_Load()
    Label1.BorderStyle = 0: Label1.BackStyle = 0: Label1.AutoSize = True
    Label1.Caption = "Démonstration d'un effet de stabilot sur un Label"
    Label1.FontSize = 14: Label1.FontBold = True
    Label1.Move 0, 0
     
    Shape1.BackColor = &HC0FFC0: Shape1.BackStyle = 1: Shape1.BorderStyle = 0: Shape1.Shape = 0
    Shape1.Move 0, 0, 0, Label1.Height
    Shape1.ZOrder 1
     
    Picture1.Appearance = 0: Picture1.BorderStyle = 0: Picture1.BackColor = &HFFFFFF
    Picture1.Move 120, 120, Label1.Width, Label1.Height
     
    Me.Width = ((Picture1.Left + 120) * 2) + Picture1.Width
    Me.Height = Picture1.Top + Picture1.Height + Picture1.Left + 540
    Me.BackColor = &H808080
    End Sub
     
    Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbLeftButton And Shift = vbCtrlMask Then 'Bt. droit + touche Ctrl pour surligner
        Shape1.Left = X: Shape1.Width = 0
        Else
        Shape1.Width = 0
    End If
    End Sub
    Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbLeftButton And Shift = vbCtrlMask Then 'Bt. droit + touche Ctrl pour surligner
        If X > Shape1.Left Then
            Shape1.Width = X - Shape1.Left
            Else
            Dim TheWidth As Integer
            TheWidth = (Shape1.Left - X) + Shape1.Width
            Shape1.Left = X: Shape1.Width = TheWidth
        End If
    End If
    End Sub
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Peut-être quelqu'un aura t-il quelque chose de plus simple ...
    Oui : ne pas réinventer la roue et se servir d'une Richtextbox
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut Effet Stabilo avec un Label
    Bonjour ProgElect,

    C'est sioux. Merci.
    Je connaissais la propriété d'un label transparent ; Je m'en veux de ne pas y avoir penser.
    Voilà l'étape de l'effet Stabilo sur les Labels résolu.

    Reste le problème sur les JPEG.
    J'ai rebondi sur ton idée en créant un label avec une police type Arial gras qui n'a que des points de couleur (police 4 ou 6) et qui se met sur une JPEG.
    Le rendu n'est pas terrible, beaucoup moins bien que sur un label... Le stabilo donne l'impression d'être en fin de vie et très très sec ....
    Mais je vais essayer d'affiner.

    Merci encore.
    Bon week end
    Marc VB6

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut Effet Stabilo avec un Label
    Bonjour Unparia,

    Oui mais ... Comment faire sur une JPEG ?

    Sur les Labels:
    Je trouve la réponse de Progelect avec le Label transparent beaucoup plus simple et rusée que d'utiliser un RichtextBox.
    Pas besoin de passer le contenu du Label dedans.
    On peut aussi faire du stabilo vertical.
    On peut le placer n'importe où.
    On peut en faire autant qu'on en veut avec des couleurs différentes.
    De plus, son code est aussi pensé pour les gauchers ...
    C'est vraiment smart.

    MarcVB6

Discussions similaires

  1. [VB.Net] Drag & Drop avec un label
    Par genius_.net dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/06/2006, 13h52
  2. [VB6] TypeOf ne marche pas avec les Label ?
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 21/04/2006, 13h36
  3. Effets sonores avec turbo c
    Par Firas_tn dans le forum C
    Réponses: 2
    Dernier message: 29/03/2006, 19h19
  4. Réponses: 6
    Dernier message: 09/11/2005, 17h35
  5. [Visual Editor] problème avec les Label
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 22/08/2005, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo