Skocz do zawartości

bitmapy


Kaczka

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

Link do komentarza
Udostępnij na innych stronach

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

Link do komentarza
Udostępnij na innych stronach

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

Link do komentarza
Udostępnij na innych stronach

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

Link do komentarza
Udostępnij na innych stronach

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...