F
Hab ich doch gemacht, dachte der Code währe uninteressant :
hmm tut mir leid ich hatte meine glaskugel gerade nicht neben mir als ich das gepostet habe
also, entweder du machst das so, wie es pofix gepostet hat oder wenn du deine variante im ansatz behalten möchtest, dann sollte das ungefähr so gehen. Jedenfalls ähneln sich beide Varianten sehr stark. Der einzige Unterschied besteht eben in welcher Message welcher Code ausgeführt wird.
LRESULT CALLBACK WndProc (HWND hMain, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hDC;
static HDC dcSkin;
static HANDLE hSkinBmp;
switch (message)
{
case WM_CREATE:
hSkinBmp = (HBITMAP) LoadImage (0, "gta-background.bmp",
IMAGE_BITMAP,
0, 0,
LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_CREATEDIBSECTION);
dcSkin = CreateCompatibleDC (0);
SelectObject (dcSkin, hSkinBmp);
return 0;
case WM_PAINT:
hDC = BeginPaint (hMain, &ps);
SetBkMode (hDC, TRANSPARENT);
SetTextColor (hDC, RGB (0, 0, 0));
BitBlt (hDC, 0, 0, 500, 400, dcSkin, 0, 0, SRCCOPY);
EndPaint (hMain, &ps);
return 0;
case WM_DESTROY:
DeleteObject (hSkinBmp);
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hMain, message, wParam, lParam);
}
vllt fällt dir dann auch dein Fehler auf
PS: dein code ist IMO schlecht zu lesen, wegen den Einrückungen etc. Vllt. liegts aber auch mehr oder weniger an den Code-Tags.