c++ piszę pierwszy program korzystając z winapi, chciałbym wczytać butmapę z pliku i wyświetlić ją na formie, jak to zrobić?
0
0
avocado.tk
0
HBITMAP hbmp;
hbmp = (HBITMAP)LoadImage(NULL,"plik.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
BITMAP bm;
GetObject(hbmp,sizeof(bm),&bm);
int Width = bm.bmWidth;
int Height = bm.bmHeight;
HDC hdc;
HDC hdcmem;
hdcmem = CreateCompatibleDC(NULL);
SelectObject(hdcmem,hbmp);
hdc = GetDC(hWnd);
BitBlt(hdc,0,0,Width,Height,hdcmem,0,0,SRCCOPY);
ReleaseDC(hWnd,hdc);
DeleteObject(hbmp);
DeleteDC(hdcmem);
0
Być może zbytek zabezpieczeń, ale ja bym coś dodał:
HBITMAP hbmp;
hbmp = (HBITMAP)LoadImage(NULL,"plik.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
BITMAP bm;
GetObject(hbmp,sizeof(bm),&bm);
int Width = bm.bmWidth;
int Height = bm.bmHeight;
HDC hdc;
HDC hdcmem;
hdcmem = CreateCompatibleDC(NULL);
HANDLE tmp=SelectObject(hdcmem,hbmp); // HANDLE/HBITMAP/HWHATEVER
hdc = GetDC(hWnd);
BitBlt(hdc,0,0,Width,Height,hdcmem,0,0,SRCCOPY);
ReleaseDC(hWnd,hdc);
SelectObject(hdcmem,tmp);
DeleteObject(hbmp);
DeleteDC(hdcmem);
Nie wiem, jak przy tworzonym komatybilnym kontekscie, ale przy normalnym powinna być wykonana rotacja obiektów.