c++ winapi: jak wczytać bitmape i narysowac ją na formie?

0

c++ piszę pierwszy program korzystając z winapi, chciałbym wczytać butmapę z pliku i wyświetlić ją na formie, jak to zrobić?

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1