lkhatiir
Messages postés1Date d'inscriptionlundi 18 août 2008StatutMembreDernière intervention 7 novembre 2009 7 nov. 2009 à 22:22
Génial, !
Très joli
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 23 nov. 2003 à 06:52
Un seul mot : Excellent !
Très bonne utilisation de la fonction PatBlt que l'on oublie bien souvent !
Bravo 10/10
DarK Sidious
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 12 nov. 2003 à 13:39
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.
cs_olid
Messages postés296Date d'inscriptionlundi 2 septembre 2002StatutMembreDernière intervention28 janvier 2008 12 nov. 2003 à 12:48
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
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 12 nov. 2003 à 08:24
vu que le texturing utilises un Brush, ca crée une mosaïque de ta texture....
cs_olid
Messages postés296Date d'inscriptionlundi 2 septembre 2002StatutMembreDernière intervention28 janvier 2008 12 nov. 2003 à 08:05
Interressant...
Avant de tester et noter (yest que 7h là :op), jaurais une tite question :
Quand le texte est plus grand que l'image, tu deforme l'image ou tu répéte l'image (mosaique avec l'image) ?
NB: Perso, je prefererais une mosaique, et si zà interesse, jai fais une source la-dessus qui devrait y aider ;o)
kimmelf2
Messages postés267Date d'inscriptionlundi 22 septembre 2003StatutMembreDernière intervention27 novembre 2005 9 nov. 2003 à 23:55
moi je te ferais bien passer a 8, mais il faudrais noter 12/10 ...
donc tant pis, je met 9 aussi ! :-D
ton truc va etre vachement pratique pour faire des interfaces un peu + agreables ...
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 9 nov. 2003 à 00:39
Arf si tu savais ... ça fait longtemp que j'en porte !
C'est pas gave on vas pourvoir t'appeler :
l'intello, le bigleu, le binoclar, l'oculaire defaillant, double foyer
l'oeil de verre, le press-bit (arf quel jeu de mot)
sinon pour ta note j'ai mis 9 pour arriver a 7 ben oui
6,33 ça fait (Hypothese) 9 + 9 + 1 (quel c*%n celui qui a mis 1,
encore un frustré) donc si on rajoute 7 sa fait 28
que je divise par 4 et qui me donne 7... pffiu ça travail
sec de la cafetiere !
sinon aussi tu pourrais encore gagner de la place dans ta
procedure en faisant:
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
Dim cSize As SIZE
oldBrush = SelectObject(hdc, hBrush)
'# On definit l'origine du motif
SetBrushOrgEx hdc, x, y, 0&
'# On recupere les dimensions du texte.
GetTextExtentPoint32 hdc, Str, Len(Str), cSize
'# On dessinne notre texte
PatBlt hdc, x, y, cSize.cw, cSize.ch, PATINVERT
TextOut hdc, x, y, Str, Len(Str)
DrawBrushedText = PatBlt(hdc, x, y, cSize.cw, cSize.ch, PATINVERT)
'# On remet l'ancien Brush dans le DC
SelectObject hdc, oldBrush
End Function
C@rdialement,
EB
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 8 nov. 2003 à 21:32
lol, surement....
reste que je viens d'apprendre que je dois porter des lunettes.....
ca use, je vous le dit !!!
mais qu'est-ce que j'aime ca....!!!
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 8 nov. 2003 à 21:00
Renfield>Tu tapotte trop sur ton pc :
une API... une gorgé de JB... une API... une gorgé de JB... lol
a force sa épuise ! lol
:-P
@+
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 8 nov. 2003 à 13:29
ouais ouais, EB, on est d'accord, sur l'API....
Je m'en sers couramment, elle possede plus d'options !
mais la, je suis plus ou moins cloué.... j'ai un de ces mal de crâne !
merci encore ;-)
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 8 nov. 2003 à 11:39
Renfield> Aller je suis sur que tu nous cache encore
plein de merveille sur ton ordi...
;-)
Sinon pour l'API multiline c'est DrawText(Ex)
Elle est tres simple et dessine du text dans un rectangle
B@nne prog
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 8 nov. 2003 à 11:25
Si tu utilises une autre API que "l'habituelle" TextOut (donc qui sort de l'ordinaire), ne soit pas avare en commentaire pour nous permettre de connaître et comprendre cette API.
Merci.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 8 nov. 2003 à 11:14
j'avais meme pas vu que les textes multilignes posaient pb...
pas etonnant : j'utilises TextOut...
je vais simplement utiliser une autre API.... merci d'avoir pointé ca...
sinon, je passe très longtemps sur machine, mais je viens sur VbFrance, aussi depuis mon boulot, vu que ces temps - ci je suis pas trop occupé....
oula !! je viens de voir que j'ai même eu droit a la "notation des admins" !!
alors la, je sens que je vais devenir tout rouge...
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 8 nov. 2003 à 09:50
Génial...
J'ai apporté la petite modification suivante afin de permettre l'utilisation d'un texte multiligne :
Dim Phrases() As String
Phrases = Split(Txt.Text, vbCrLf)
Dim i As Integer
For i = 0 To UBound(Phrases) - 1
DrawBrushedText Me.hdc, 30, 80 + (i * Me.TextHeight(Phrases(i))), Phrases(i), hBrush
Next
PS: Dis-moi quand est-ce que tu dors ou que tu bosses ailleurs que sur ton PC ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 nov. 2003 à 03:29
Génial, comme d'hab !
Très joli, ça servira surement un de ces quatre ...
(W2000)
En plus, une source (adresse) avec que des 7 ou presque : je suis jalou
7 nov. 2009 à 22:22
Très joli
23 nov. 2003 à 06:52
Très bonne utilisation de la fonction PatBlt que l'on oublie bien souvent !
Bravo 10/10
DarK Sidious
12 nov. 2003 à 13:39
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.
12 nov. 2003 à 12:48
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
12 nov. 2003 à 08:24
12 nov. 2003 à 08:05
Avant de tester et noter (yest que 7h là :op), jaurais une tite question :
Quand le texte est plus grand que l'image, tu deforme l'image ou tu répéte l'image (mosaique avec l'image) ?
NB: Perso, je prefererais une mosaique, et si zà interesse, jai fais une source la-dessus qui devrait y aider ;o)
9 nov. 2003 à 23:55
donc tant pis, je met 9 aussi ! :-D
ton truc va etre vachement pratique pour faire des interfaces un peu + agreables ...
9 nov. 2003 à 00:39
C'est pas gave on vas pourvoir t'appeler :
l'intello, le bigleu, le binoclar, l'oculaire defaillant, double foyer
l'oeil de verre, le press-bit (arf quel jeu de mot)
sinon pour ta note j'ai mis 9 pour arriver a 7 ben oui
6,33 ça fait (Hypothese) 9 + 9 + 1 (quel c*%n celui qui a mis 1,
encore un frustré) donc si on rajoute 7 sa fait 28
que je divise par 4 et qui me donne 7... pffiu ça travail
sec de la cafetiere !
sinon aussi tu pourrais encore gagner de la place dans ta
procedure en faisant:
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
Dim cSize As SIZE
oldBrush = SelectObject(hdc, hBrush)
'# On definit l'origine du motif
SetBrushOrgEx hdc, x, y, 0&
'# On recupere les dimensions du texte.
GetTextExtentPoint32 hdc, Str, Len(Str), cSize
'# On dessinne notre texte
PatBlt hdc, x, y, cSize.cw, cSize.ch, PATINVERT
TextOut hdc, x, y, Str, Len(Str)
DrawBrushedText = PatBlt(hdc, x, y, cSize.cw, cSize.ch, PATINVERT)
'# On remet l'ancien Brush dans le DC
SelectObject hdc, oldBrush
End Function
C@rdialement,
EB
8 nov. 2003 à 21:32
reste que je viens d'apprendre que je dois porter des lunettes.....
ca use, je vous le dit !!!
mais qu'est-ce que j'aime ca....!!!
8 nov. 2003 à 21:00
une API... une gorgé de JB... une API... une gorgé de JB... lol
a force sa épuise ! lol
:-P
@+
8 nov. 2003 à 13:29
Je m'en sers couramment, elle possede plus d'options !
mais la, je suis plus ou moins cloué.... j'ai un de ces mal de crâne !
merci encore ;-)
8 nov. 2003 à 11:39
plein de merveille sur ton ordi...
;-)
Sinon pour l'API multiline c'est DrawText(Ex)
Elle est tres simple et dessine du text dans un rectangle
B@nne prog
8 nov. 2003 à 11:25
Merci.
8 nov. 2003 à 11:14
pas etonnant : j'utilises TextOut...
je vais simplement utiliser une autre API.... merci d'avoir pointé ca...
sinon, je passe très longtemps sur machine, mais je viens sur VbFrance, aussi depuis mon boulot, vu que ces temps - ci je suis pas trop occupé....
oula !! je viens de voir que j'ai même eu droit a la "notation des admins" !!
alors la, je sens que je vais devenir tout rouge...
8 nov. 2003 à 09:50
J'ai apporté la petite modification suivante afin de permettre l'utilisation d'un texte multiligne :
Dim Phrases() As String
Phrases = Split(Txt.Text, vbCrLf)
Dim i As Integer
For i = 0 To UBound(Phrases) - 1
DrawBrushedText Me.hdc, 30, 80 + (i * Me.TextHeight(Phrases(i))), Phrases(i), hBrush
Next
PS: Dis-moi quand est-ce que tu dors ou que tu bosses ailleurs que sur ton PC ?
8 nov. 2003 à 03:29
Très joli, ça servira surement un de ces quatre ...
(W2000)
En plus, une source (adresse) avec que des 7 ou presque : je suis jalou