Bonjour,

Je code en C++ et utilise l'API WIN32.

J'ai un probleme avec l'utilisation de la fonction GetDIBits. Voici en fait ce que je veux faire: Je charge une image avec la fonction LoadImage, ce qui me donne un handle de type HBITMAP. Ensuite je veux récupérer les bits de l'image afin de faire une transformation (rotation par exemple). Et finalement je veux renvoyer les bits de l'image avec la fonction SetDIBits.

Mon problème est que les fonctions GetDIBits et SetDIBits attendent comme premier argument un handle de contexte de périphérique HDC. Or, je n'en ai pas! En effet, je ne veux pas afficher l'image, je veux juste transformer ses bits. J'ai essayé de mettre NULL pour l'argument du HDC, mais ça ne marche pas.

En fait je suis parvenu à mes fin en utilisant les fonctions GetBitmapBits et SetBitmapBits qui ne demande pas de HDC, mais sur la MSDN il est dit que ces fonctions n'existent que pour la compatibilité avec les versions 16 bits de Windows, et que les application devraient utiliser à la place GetDIBits et SetDIBits.

Donc si quelqu'un peut me dire quel HDC je dois mettre... Peut-on créer un HDC virtuel, histoire que la fonction GetDIBits soit contente?