O
es klappt immer noch nicht
long __stdcall LoadProc (HWND hLoad, unsigned int message, unsigned int wParam, long lParam)
{
HDC hDC;
PAINTSTRUCT ps;
HANDLE hBitmap;
int x, y = 0;
switch (message)
{
case WM_CREATE:
InitCommonControls();
WaxEngBMPField = CreateWindow ("Static", NULL, WS_CHILD | WS_VISIBLE | SS_BITMAP, 0, 0, 500, 300, hLoad, (HMENU)4, WaxEngLoadHinstance, NULL); //<-- bedeckt das ganze Fenster, klappt aber auch nicht, wenn es das nicht tut
hBitmap = LoadImage (GetModuleHandle (NULL), "start_screen.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE);
SendMessage (WaxEngBMPField, STM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM)(HANDLE) hBitmap);
st = CreateWindow (PROGRESS_CLASS, NULL, WS_CHILD | WS_VISIBLE | PBS_SMOOTH, 15, 240, 470, 20, hLoad, (HMENU) 1, WaxEngLoadHinstance, NULL);
SetTimer (hLoad, 1, 1, NULL);
SendMessage (st, PBM_SETRANGE, 0, MAKELPARAM (0, 500));
SendMessage (st, PBM_SETSTEP, (WPARAM) 1, 0);
SendMessage (st, PBM_SETBARCOLOR, 0, RGB (46, 50, 146));
SendMessage (st, PBM_SETBKCOLOR, 0, RGB (128, 131, 226));
return 0;
case WM_PAINT:
hDC = BeginPaint (hLoad, &ps);
SetBkMode (hDC, TRANSPARENT);
EndPaint (hLoad, &ps);
return 0;
case WM_TIMER:
switch (wParam)
{
case 1:
if (SendMessage (st, PBM_GETPOS, 0, 0) >= 500)
PostQuitMessage (0);
else
SendMessage (st, PBM_STEPIT, 0, 0);
break;
}
return 0;
case WM_SYSCOMMAND:
switch (wParam)
{
case SC_SCREENSAVE:
case SC_MONITORPOWER:
return 0;
}
return 0;
//HIER SOLL ES GETAN WERDEN
case WM_LBUTTONDOWN:
ReleaseCapture ();
SendMessage (hLoad, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
return 0;
case WM_DESTROY:
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hLoad, message, wParam, lParam);
}
das ist die Prozedur vom Fenster...
Mfg Ominion
EDIT:habe den Fehler gefunden. WM_SYSCOMMAND hatte ich ja überschrieben bzw. selbstdefiniert. Danke an alle, klappt jetzt endlich wie gewünscht
EDIT: jetzt klappt es auch mit WalterZ's Lösung, danke an euch beide, das hat mir sehr geholfen!