Problem z bitmapą.

0

Cześć.

Mam pewien problem z wyświetlaniem bitmapy, starałem się znaleźć jego rozwiązanie na forum, ale mimo wielu podobnych, takiego nie znalazłem.

Piszę w kompilatorze, Visual Studio 2005. ( w C++ ). KJorzystając z biblioteki <windows.h> starałem się wyświetlić na ekran bitmapę o nazwie x.bmp. umieściłem ją w katalogu z programem i wypociłem następujący kod:

void Render::renderuj(HDC hdc,HWND hWnd)
{

WCHAR nazwa_pliku[6];
nazwa_pliku[0]='x';
nazwa_pliku[1]='.';
nazwa_pliku[2]='b';
nazwa_pliku[3]='m';
nazwa_pliku[4]='p';
HBITMAP obrazek = (HBITMAP) LoadImage(NULL,nazwa_pliku,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

HDC hdc_pamiec = CreateCompatibleDC(NULL);
HBITMAP stary_obrazek = (HBITMAP) SelectObject (hdc_pamiec,obrazek);
BITMAP bitmapa;
GetObject (obrazek,sizeof(BITMAP), &bitmapa);


BitBlt(hdc,0,0,bitmapa.bmWidth,bitmapa.bmHeight,hdc_pamiec,0,0,SRCCOPY);

SelectObject(hdc_pamiec,stary_obrazek);

DeleteDC(hdc_pamiec);
DeleteObject(obrazek);

}

Program skompilował się i uruchomił. Niestety bitmapa niw została wyświetlona :-(

0
Zych napisał(a)

void Render::renderuj(HDC hdc,HWND hWnd)
{
.
.
.

HDC hdc_pamiec = CreateCompatibleDC(NULL);
.
.
.
}

Może zamiast wstawiac NULL wstaw uchwyt kontekstu urządzenia okna na którym chcesz bitmape wyswietlic:

 	
HDC hdc_pamiec = CreateCompatibleDC(hdc);

hdc powinno być kontekstem okna hWnd (rozumiem ze tak jest u ciebie).

0

Stringi trzeba zakoańczać zerem!

0

spróbuj tak ;-)
TCHAR *nazwa_pliku = TEXT("x.bmp");

0

DZIAŁA !!! :d

To była wina stringa.

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