Bitmap et brushes : texte avec une texture

Soyez le premier à donner votre avis sur cette source.

Vue 8 832 fois - Téléchargée 386 fois

Description

C'est en fait le portage du code de radada :
http://www.vbfrance.com/code.aspx?ID=17764

de .Net vers Vb6.... oui, je sais, en general, on fais (ou on tente) le contraire.....

je trouvais interessant de presenter ca, même si ca n'est pas le seul moyen d'y parvenir. EBArtSoft ne me contredira pas ;-)

Ca permet de dessiner du texte, en utilisant une texture...

Source / Exemple :


Public Function DrawBrushedText(ByVal hdc As Long, ByVal x As Single, ByVal y As Single, ByVal Str As String, ByVal hBrush As Long) As Boolean
    '# On assigne le Brush au DC, et on memorise l'ancien
    Dim oldBrush As Long
    oldBrush = SelectObject(hdc, hBrush)
    
    '# On definit l'origine du motif
    SetBrushOrgEx hdc, x, y, 0&
    
    '# On recupere les dimensions du texte.
    Dim width As Long: width = DCTextWidth(hdc, Str)
    Dim height As Long: height = DCTextHeight(hdc, Str)
    
    '# On dessinne notre texte
    PatBlt hdc, x, y, width, height, PATINVERT
    TextOut hdc, x, y, Str, Len(Str)
    DrawBrushedText = PatBlt(hdc, x, y, width, height, PATINVERT)
    
    '# On remet l'ancien Brush dans le DC
    SelectObject hdc, oldBrush
End Function

Conclusion :


Un label possédant la capacité d'avoir une texture, va bientôt voir le jour.... avec d'autres effets, que je vous concocte....

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
7 novembre 2009

Génial, !
Très joli
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
Un seul mot : Excellent !

Très bonne utilisation de la fonction PatBlt que l'on oublie bien souvent !

Bravo 10/10

DarK Sidious
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
Bien sur, compatible depuis 98....

je pense sincerement que la technique est plus rapide que de regarder pixel par pixe...

un Brush, tu en utilise depuis toujours, sans le savoir.
Windows le fait constamment...
Ca fait partie des objets de base du GDI, a cote des Font et des Pens, par exemple...

en fait, ca definit un "materiau" avec lequel tu remplit ce que tu dessine.

si tu as deja utilisé des API, et apparemment c'est le cas, tu constatera que pour remplir un rectangle Rouge, tu crée un "Solid" Brush, qui est constitué d'une couleur : le rouge.....

ensuite, quand tu dessines, ca utilises le Brush que tu as selectionné.... et si ca deborde, tu observes un effet de mosaIque... ca doit pouvoir se changer, d'ailleurs, mais je n'ai jamais rien lu la dessus.

tu peux aussi choisir les coordonnées du point d'origine du Brush. je m'en sers d'ailleurs, sinon, parfois le Brush est décalé...

quoi dire d'autre... je ne sait pas trop.... si ce n'est qu'en faisant, tu comprendra surement plus qu'en me lisant ;-)


Bonne continuation. et merci.
Messages postés
296
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
28 janvier 2008

Humm...interressant, et peut etre que ta routine de remplissage par mosaique est plus rapide que la mienne... Je regarderais ce soir :o|

Pour ma part, je passais par les API putpixel et getpixel...Et comme je connais pô les brush, tu aurais quelques explications la-dessus ? compatible avec Win 98 et nt4 ?

NB: d'avance, 9/10 ;op
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
vu que le texturing utilises un Brush, ca crée une mosaïque de ta texture....
Afficher les 16 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.