SetBkMode & DrawText

Résolu
Signaler
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012
-
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012
-
Bonjour,

y a t il un moyen pour remplir le Rectangle de couleur et non Que l'arrière plan des caractère avec SetBkColor ?

SetBkMode lhDC, OPAQUE
SetBkColor lhDC, mlFillColor
DrawText lhDC, caption & vbNullChar, Len(caption), DrawingZone, wFormat

merci :)

7 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
ouaip....

alternative, FillRect, qui a cet avantage que ton brush n'a pas a etre associé au Dc

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
API Rectangle, par exemple

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012

je serai obligé d'utiliser CreateSolidBrush et tout le tralala qui suit alors ?
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
penses au DeleteObject, sinon => fuite

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012

oui, j'ai fait cela et nickel , encore merci :

      Dim lBrush As Long
    lBrush = CreateSolidBrush(TranslateColor(mlFillColor)) 'où  TranslateColor converti la couleur via OleTranslateColor
    FillRect lhDC, DrawingZone, lBrush
   
    Dim wFormat As Long
    Select Case lAlign
    Case vbLeftJustify
        wFormat = DT_WORDBREAK Or DT_EXPANDTABS Or DT_NOPREFIX
    Case vbRightJustify
        wFormat = DT_NOPREFIX Or DT_TOP Or DT_RIGHT Or DT_WORDBREAK Or DT_EXPANDTABS
    Case vbCenter
        wFormat = DT_TOP Or DT_WORDBREAK Or DT_CENTER Or DT_NOPREFIX
    End Select
    
    DrawText lhDC, caption & vbNullChar, Len(caption), DrawingZone, wFormat

    retval = SelectObject(lhDC, hOldFont)
    retval = DeleteObject(hFont)
    DeleteObject lBrush
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
tes RetVal ne te servent a rien, apparemment :

DeleteObject SelectObject(lhDC, hOldFont)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012

en postant, me suis douté que tu allais dire cela.... hihihiih ...quel souci du détail