Skocz do zawartości

jak wypelnic okno bitmapą??


Trust

Recommended Posts

Jezeli chcesz odmalowac w sensie takim, ze okno ma byc rozmiaru bitmapy, to utworz okno tej wielkosci i skorzystaj z bitblt. Jezeli zas to bitmapa ma byc przyporzadkowana to skorzystaj z stretchblt.
A odmalowanie polega na tym, ze jak masz uchwyt mapy, to nastepnie tworzysz kompatybilny kontekst z kontekstem okna (CreateCompatibleDC), nastepnie do niego przypisujesz mape (selectobject) i malujesz (jak wspomnialem wyzej). Wszystko najlepiej wykonac w odpwiednim komunikacie, tj. WM_PAINT. I na koncu nie zapomnij o zwolnieniu pamieci utworzonego kont. - DeleteDC.
That's all - yo 4 all.

Link do komentarza
Udostępnij na innych stronach

  • 4 weeks later...

heh... też mam problem z bitmapkami
no wiec piszę sobie programik w MsVC++ no i w WM_PAINT umieszczam taki oto kod...

CString m_strBitmap = "C:\\Program\\busz.bmp";
HBITMAP hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(),
m_strBitmap,IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION);
PAINTSTRUCT ps; 
HDC hdc=::BeginPaint(m_hWnd,&ps); 
HDC kon=::CreateCompatibleDC(hdc); 
::SelectObject(kon,hBitmap); 
BITMAP bm;
GetObject(hBitmap, sizeof(bm), &bm);
BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,kon,0,0,SRCCOPY); 
::DeleteDC(kon); 
::EndPaint(m_hWnd,&ps);

i czy ktoś mi powie co tu jest nie tak??
bitmapka w ogóle sie nie wyswietla - no effects :(

Link do komentarza
Udostępnij na innych stronach

  • 11 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...