Devo caricare un'immagine in un bottone, l'immagine viene caricata ma risulta sgranata, non
so come poter risolvere, ecco il codice utilizzato:
CImage image;
HRESULT hr = image.Load(str_path); // just change extension to load jpg
CBitmap bmp;
bmp.Attach(image.Detach());
BITMAP bm = { 0 };
bmp.GetBitmap(&bm);
auto size = CSize(bm.bmWidth, bm.bmHeight);
CWindowDC screenCDC(NULL);
auto dpiX = screenCDC.GetDeviceCaps(LOGPIXELSX);
auto dpiY = screenCDC.GetDeviceCaps(LOGPIXELSY);
auto hiSize = CSize((dpiX * size.cx) / 1, (dpiY * size.cy) / 1);
CBitmap * res;
res = new CBitmap();
res->CreateCompatibleBitmap(&screenCDC, largh, altez);
CDC srcCompatCDC;
srcCompatCDC.CreateCompatibleDC(&screenCDC);
CDC destCompatCDC;
destCompatCDC.CreateCompatibleDC(&screenCDC);
CMemDC srcDC(srcCompatCDC, CRect(CPoint(), size));
auto oldSrcBmp = srcDC.GetDC().SelectObject(&bmp);
CMemDC destDC(destCompatCDC, CRect(CPoint(), hiSize));
auto oldDestBmp = destDC.GetDC().SelectObject(res);
destDC.GetDC().StretchBlt(0, 0, largh, altez, &srcDC.GetDC() , 0, 0, size.cx, size.cy, SRCCOPY);
srcDC.GetDC().SelectObject(oldSrcBmp);
destDC.GetDC().SelectObject(oldDestBmp);
////////////////////**********************************************
HBITMAP hBitmap6 = (HBITMAP)res->GetSafeHandle();
m_Btn1.SetBitmap(hBitmap6);