Afficher un bitmap disponible en mémoire dans un contrôle picture

cs_lolo16 Messages postés 3 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 22 mars 2005 - 15 mars 2004 à 15:10
sic marking Messages postés 2 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 31 mars 2005 - 31 mars 2005 à 14:32
Je développe une application qui pilote un scanner.
Les images scannées sont sauvegardées sur le disque et sont aussi dispos directement en mémoire dans un objet propriétaire.
Mon pb est le suivant : j'aimerai afficher ces images dans un contrôle pictureBox ou image
J'ai cherché sur plusieurs sites pour aboutir à un truc du genre :

Dim maskDC As Long 'DC for the mask
Dim hMaskBmp As Long 'Bitmap for mask

maskDC = CreateCompatibleDC(picChq.hdc)
hMaskBmp = XTVB.GetBitMapInfo
hMaskBmp = SelectObject(maskDC, hMaskBmp)

BitBlt maskDC, 0, 0, XTVB.GetWidth, XTVB.GetHeight, hMaskBmp, 0, 0, vbSrcCopy

DeleteObject (hMaskBmp)
DeleteDC (maskDC)

où picChq est mon contrôle picture et XTVB l'objet que me renvoie le scanner.
(cet objet a comme méthodes : GetBitMapInfo qui permet de récupérer un pointeur sur la structure BITMAPINFO de l’image et GetRawData qui permet de récupérer un pointeur sur la zone de données de l’image.

pour le moment le code fait planter mon appli, toute solution est la bienvenue ... SOS ...
merci pour votre aide

1 réponse

sic marking Messages postés 2 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 31 mars 2005
31 mars 2005 à 14:32
remplace la ligne (BitBlt
) par celle-ci pour voir :

BitBlt picChq.hdc, 0, 0, XTVB.GetWidth, XTVB.GetHeight, hMaskBmp, 0, 0, vbSrcCopy

puis vérifie que
XTVB.GetWidth
revoie une valeur valide et qu'elle est < à picChq.width
idem pour
XTVB.GetHeight
0
Rejoignez-nous