Ici j'utilise la méthode Render() pour afficher l'image directement dans le Device Context d'un STATIC. La fonction AfficheImage() prend en paramètres le chemin de l'image et le HWND du controle sur lequel l'image sera affichée.
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201415 4 juil. 2007 à 01:00
Salut,
Oui en utilisant l'interface COMIPicture. Cette dernière dispose d'une méthode permettant d'afficher une image JPG, entre autres, directement dans un Device Context. C'est la méthode Render() qui prend en premier paramètre le HDC dans lequel sera affichée l'image. Cette image doit être chargée au préalable avec une fonction comme OleLoadPicturePath().
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201415 4 juil. 2007 à 01:32
En C les interfaces COM sont utilisées différemment. On accède aux méthodes via la VTable de l'interface. Je vais faire un petit test de ce code en C pour voir.
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201415 4 juil. 2007 à 02:08
Pour l'instant OleLoadPicturePath() refuse de fonctionner en C. Je fais:
HRESULT res;
//...
res=OleLoadPicturePath(wpath, 0, 0, 0, &IID_IPicture, (LPVOID*)&pPic);
Elle retourne 0x800c000d. Je n'ai pas encore trouvé la cause de cette erreur.
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 4 juil. 2007 à 04:37
Je vient de tester ca compile mais ca ne marche pas :S
hPic = GetDlgItem(hwnd, IDC_PIC);
HANDLE h = OpenGraphic("C:\\test.jpg");
DisplayGraphic(hwnd, h);
CloseImage(h);
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201415 4 juil. 2007 à 17:59
BruNews >> J'ai déjà précisé à l'auteur de la question qu'il faut passer par la Vtable pour accéder aux méthodes de l'interface IPicture. J'avais l'intention de lui fournir un exemple fonctionnel en C. Mais, à ma surprise, OleLoadPicrurePath() refuse de fonctionner en C sans pouvoir en trouver la raison. Je vais essayer avec OleLoadPicture() en espérant que celle-ci marchera en C.