Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dessiner un icon avec GDI+ sous VC 6

2 réponses
Avatar
david.initalia
Bonjour,

J'essaye de dessiner un icon dans une vue.
Au début j'utilisais le gdi classique et je faisais comme cela:

pDC->DrawIcon(rect_icon.left, rect_icon.top, hIcon);
tout allait tres bien.

Ensuite j'ai changé et j'ai utilisé gdi+ :

HICON hicon = myIcon;
Bitmap bitmap(hicon);
graphics->DrawImage(&bitmap, rct.GetRight() , rct.GetTop() , 32, 32);

Ca dessine l'icon mais la qualité est tres moyenne, l'icon est flou.
J'ai essayé de changer les modes de dessin en utilisant SetSmoothingMode et
SetPixelOffsetMode mais cela n'a rien changé.
Est il possible d'avoir la même qualité qu'avec la fonction DrawIcon ?

Merci d'avance pour votre aide

David

2 réponses

Avatar
castorix
(david) wrote in message news:...

HICON hicon = myIcon;
Bitmap bitmap(hicon);
graphics->DrawImage(&bitmap, rct.GetRight() , rct.GetTop() , 32, 32);

Ca dessine l'icon mais la qualité est tres moyenne, l'icon est flou.



Sous quel OS ? (si XP, peut-être prob d'alpha channel)
Es-tu sûr que c'est bien la 32*32 (et pas la 16*16) ?

Ca marche parfaitement sur mon poste (NT) =>

GdiplusStartupInput sti;
ULONG_PTR gpToken;
GdiplusStartup(&gpToken, &sti, NULL);
HDC hDC = GetDC(NULL);
Graphics graphics(hDC);
HICON hIcon = (HICON)LoadImage(NULL, "test.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
Bitmap bitmap(hIcon);
graphics.DrawImage(&bitmap, 100 , 100 , 32, 32);
DrawIconEx(hDC, 100, 150, (HICON)hIcon, 32, 32, 0, 0, DI_NORMAL);
ReleaseDC(NULL, hDC);
GdiplusShutdown(gpToken);
Avatar
david.initalia
Non j'utilise des icones uniquement définis en 32*32.
En tapant extactement le même code que vous j'ai bien 2 icones de
qualité différentes.