Jump to content
Sign in to follow this  
Kaczka

bitmapy

Recommended Posts

Jeżeli chcesz załadować bitmapę z pliku to trzeba użyć funkcji LoadImage. Wydaje mi się, że nie możesz tego zrobić tak jak pokazałeś ponieważ u Ciebie X jest prawdopdobnie strukturą typu OPENFILENAME, która to przechowuje między innymi nazwę pliku wybranego przez użytkownika więc nie możesz jej tak bezpośrednio przekazać funkcji LoadBitmap. Nazwa pliku wybranego przez użytkownika znajduje się w składowej struktury OPENFILENAME.
Jak to wszystko ładnie zrobić jest pokazane w artykule Pinolca:
https://winapi.org/index.php?option=content&task=view&id=27&Itemid=28

pozdrawiam

Share this post


Link to post
Share on other sites

przczytalem artykul juz wczesniej :P laduje do loadimage() jak i loadbitmap() nazwe pliku zapisywana w strukturze OPENFILENAME -lpstrFile lub lpstrFileTitle i dalej nic :? chyba cos zle robie zdaje mi sie ze musze jednak urzyc loadbitmap do przeciez laduje to z zasobow a loadimage sluzy do zaladowania z konkretnego pliku prosze o pomoc

Share this post


Link to post
Share on other sites

uporalem sie z ladowaniema bitmapy ale nie chce mi sie wyscwiatlic obrazek :?
kod:
OPENFILENAME ofn;
....
ofn.lpstrFile = szFileName;
...
if(GetOpenFileName(&ofn)){
hbitmap = (HBITMAP) LoadImage(hInst,szFileName , IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

hdc = GetDC(hwnd); // pobierz kontekst
memDC = CreateCompatibleDC(hdc); // stworz ko
SelectObject(memDC,hbitmap); // wybierz bitmape
BitBlt(hdc, LOWORD(lParam), HIWORD(lParam), 145, 160, memDC, 0, 0, SRCCOPY); // wyswietl bitmape
ReleaseDC(hwnd, hdc); // zwolnij konteksty
DeleteDC(memDC);
break; }

kompilacja nie zwraca bledow, jednak nie pokazuje wybanej bitmapy

Share this post


Link to post
Share on other sites

hmm
Wydaje się być wszystko w miarę ok. Zrobiłem mały programik, który właściwie jest prawie dokładnie taki sam jak twój ( fragment ładowania i wyświetlania bitmapy) i wszystko działa jak należy. Widać, że wywołujesz te funkcje w procedurze obsługi okna (lParam) - może parametry, które przekazujesz są niewłaściwe? Próbowałeś debugować program? Możesz ewentualnie spróbować załadować jakąś bitmapę, podając bezpośrednio wartości w funkcjach, a nie przekazując je z innych funkcji (np. ścieżkę w LoadImage). Może funkcja GetOpenFileName zwraca 0? Może niepoprawnie zainicjalizowałeś strukturę ofn?

pozdrawiam

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

Sign in to follow this  

×
×
  • Create New...