CreateCompatibleBitmap et SetPixelV [Résolu]

Messages postés
591
Date d'inscription
lundi 25 août 2003
Dernière intervention
18 juillet 2010
- - Dernière réponse : ciberrique
Messages postés
591
Date d'inscription
lundi 25 août 2003
Dernière intervention
18 juillet 2010
- 10 nov. 2005 à 17:44
Bonjours, je voudrais dessiner sur une surface en mémoire mais je n'y arrive pas, j'ai rédigé le code suivant mais a = 0 alors que normalement non.

Dim TDc As Long, l As Long
Dim TBitmap As Long

l = UBound(File)

TDc = CreateCompatibleDC(Me.hdc)
TBitmap = CreateCompatibleBitmap(TDc, l, 256)
For i = 1 To l
a = SetPixelV(TBitmap, i, File(i - 1), vbBlack)
Next i

Merci
Afficher la suite 
A voir également:

5 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
3
Merci
Pour coller à ton code, ca donnerais :

Dim TDc As Long, l As Long
Dim TBitmap As Long

l = UBound(File)

TDc = CreateCompatibleDC(Me.hdc)
'# Bitmap monochrome :
'TBitmap = CreateCompatibleBitmap(TDc, l, 256)
'# Bitmap en couleur :
TBitmap = CreateCompatibleBitmap(Me.hdc, l, 256)

SelectObject tDC , TBitmap
For i = 1 To l
a = SetPixelV(TDc, i, File(i - 1), vbBlack)
Next i

maintenant, l'algo n'est pas top : tu souhaite juste tracer une ligne, pas besoin de manipuler les pixels pour cela !
(MoveToEx / LineTo)

DeleteDC tdc
DeleteObject tbitmap

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
110
0
Merci
Attention, un handle de bitmap n'est pas un handle de DC !



Un bitmap est sélectionné dans un DC, mais c'est sur le DC qu'il faut travailler !



Voir ma source de gestion d'image pour un exemple concret d'utilisation d'un tableau de bits.

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
17
0
Merci
en gdiplus ça existe

utilisable en VB6 mais pas simple à mettre au point.









Public Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal hdc As Long, graphics As Long) As GpStatus

Public Declare Function GdipCreateBitmapFromGraphics Lib "gdiplus"
(ByVal Width As Long, ByVal Height As Long, ByVal graphics As Long,
bitmap As Long) As GpStatus

Public Declare Function GdipBitmapSetPixel Lib "gdiplus" (ByVal bitmap
As Long, ByVal x As Long, ByVal y As Long, ByVal Color As Long) As
GpStatus

etc ....

Daniel
Messages postés
591
Date d'inscription
lundi 25 août 2003
Dernière intervention
18 juillet 2010
0
Merci
Merci as tout les deux vos réponses me sont fort précieuse.
Messages postés
591
Date d'inscription
lundi 25 août 2003
Dernière intervention
18 juillet 2010
0
Merci
Merci c'est exactement le code que je chercher, seulement j'avais oublier de select.
D'ailleur il me semble que c'est toi qui m'avais expliquer la méthode il y plusieurs moi sur msn. Merci encore.

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.