Witam, piszę ten temat, bo już dosłownie nie mam pojęcia, jak uporać się z tym problemem.
Mam funkcje wyświetlającą bitmapy:
DWORD B32(BYTE r,BYTE g,BYTE b)
{
return 0xFF000000 | (r<<16) | (g<<8)|b;
};
int Display(int x,int y,int w,int h,TCHAR Src[])
{
Bg = LoadImage(NULL, Src, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
DDCOLORKEY ddck;
ddck.dwColorSpaceLowValue = ddck.dwColorSpaceHighValue = B32(255,0,255);
Buffor->SetColorKey(DDCKEY_SRCBLT,&ddck);
tempHDC = CreateCompatibleDC(0);
SelectObject(tempHDC,Bg);
Buffor->GetDC(&mHDC);
BitBlt(mHDC,x,y,w,h,tempHDC,0,0,SRCCOPY);
Buffor->ReleaseDC(mHDC);
DeleteDC(tempHDC);
DeleteObject(Bg);
} ;
Wywołuję ją na przykład tak:
Display(0,750,1024,100,"data/belka.bmp");
Wykonuję to w Timerze w WinApi, pod koniec Timera tylko Flipuję:
Surface->Flip(NULL, DDFLIP_WAIT);
I kluczowanie nie działa :(. Bardzo proszę o pomoc. Kodzę w Dev-C++ z użyciem DirectDraw, wszystko podlinkowane, wszystko się ładnie wyświetla - tylko tła obrazków pozostają.