Précédent   Forum du club des développeurs et IT Pro > Autres langages > Général Visual Basic 6 et VBScript > VB 6 et antérieur
VB 6 et antérieur Visual basic 6 et versions antérieures. Avant de poster -> La FAQ VB6, Les tutoriels VB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/12/2012, 00h16   #1
bubu92
Nouveau Membre du Club
 
Inscription : septembre 2005
Messages : 132
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 132
Points : 25
Points : 25
Par défaut Probleme GdiPlus Gradient

Bonjour a tous,

un petit soucis avec GdiPlus. Ci-dessous le code qui crée un rectangle
et le rempli avec un degradé radial. Mon probleme est que les bords droit et bas
ne sont jamais completement blanc (RGB 255,255,255), seulement les bords
gauche et haut. Je parle des dernieres lignes des "Bandes de Mach" du dégradé.
J'ai essayé de permuter le noir et le blanc, et c'etait le noir qui n'etait pas a zéro.
Le degradé est généré automatiquement avec "GdipCreatePathGradientFromPath". J'ai essayé
des fonctions comme "GdipGetPathGradientCenterColor" pour placer le centre du degradé (radial),
ou "GdipScalePathGradientTransform" pour le redimensionné, sans succès. La necessité d'avoir un
dégradé bien equilibré , tient a l'utilisation ensuite de la fonction "GdipSetPathGradientFocusScales",
qui permet d'elargir le dégradé, pour par exemple faire un bouton a cliquer (Bevel).
J'ai join une capture d'écran.

Code :
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
Dim Path1 As Long
Dim Gradient1 As Long
 
Dim hTargetGraphics As Long
Dim lpSI As GdiplusStartupInput
Dim hGdipToken As Long
 
Form1.Picture1.AutoRedraw = True
 
lpSI.GdiplusVersion = 1
GdiplusStartup hGdipToken, lpSI
 
If GdipCreateFromHDC(Form1.Picture1.hdc, hTargetGraphics) = 0& Then
 
    Call GdipGraphicsClear(hTargetGraphics, CC_to_GDI(&H888888))
 
    GdipCreatePath 0&, Path1
 
    GdipAddPathRectangle Path1, 0, 0, 60, 20
    GdipCreatePathGradientFromPath Path1, Gradient1
    GdipSetPathGradientCenterColor Gradient1, CC_to_GDI(vbBlack)
    GdipSetPathGradientSurroundColorsWithCount Gradient1, CC_to_GDI(vbWhite), 1
    GdipFillPath hTargetGraphics, Gradient1, Path1
 
    GdipDeleteBrush Gradient1
    GdipDeletePath Path1
    GdipDeleteGraphics hTargetGraphics
End If
 
GdiplusShutdown hGdipToken
 
Form1.Picture1.Picture = Form1.Picture1.image
 
Form1.Picture1.AutoRedraw = False
Images attachées
Type de fichier : png gdi.png (456 octets, 13 affichages)
bubu92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h57.


 
 
 
 
Partenaires

Hébergement Web