Problem mit DDraw
-
Hallo an alle.
Ich hab da ein Problem mit der Fullscreen übernahme mit DirectX.
Das Kompilern des quellcodes funktioniert problemlos wenn ich aber das Programm dann starte kommt meine selbstgeschriebene Fehlermeldung:
,,DDraw Fehler: CoopLevel()!"
Mit dieser Funktion Starte ich die übernahme des Fensters...ich glaub der Fehler muss irgendwo hier liegen.BOOL xxxDDraw_initialisieren(void) { HRESULT ddrval; HDC hdc; DDSURFACEDESC2 ddsd; DDSCAPS2 ddscaps; ddrval = DirectDrawCreateEx(NULL,(LPVOID *) &lpDD, IID_IDirectDraw7, NULL); if(ddrval != DD_OK) { MessageBox(hwnd, "DDraw Fehler: CreateEx()", "XXX", MB_OK); return FALSE; } ddrval = lpDD->SetCooperativeLevel(hwnd, DDSCL_FULLSCREEN|DDSCL_EXCLUSIVE); if(ddrval != DD_OK) { MessageBox(hwnd, "DDraw Fehler: CoopLevel()", "XXX", MB_OK); return FALSE; } ddrval = lpDD->SetDisplayMode(SCREEN_BREITE, SCREEN_HOEHE, SCREEN_BPP, 0, 0); if(ddrval != DD_OK) { MessageBox(hwnd, "DDraw Fehler: SetMode()", "XXX", MB_OK); return FALSE; } ZeroMemory(&ddsd, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT; ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX; ddsd.dwBackBufferCount = 1; ddrval = lpDD->CreateSurface(&ddsd, &lpDDSPrimary, NULL); if(ddrval != DD_OK) { MessageBox(hwnd, "DDraw Fehler: CreateSurf()", "XXX", MB_OK); return FALSE; } ZeroMemory(&ddscaps, sizeof(ddscaps)); ddscaps.dwCaps = DDSCAPS_BACKBUFFER; ddrval = lpDDSPrimary->GetAttachedSurface(&ddscaps, &lpDDSBack); if(ddrval != DD_OK) { MessageBox(hwnd, "DDraw Fahler AttachedSurf()", "XXX", MB_OK); return FALSE; } xxxDDraw_Puffer_leeren(lpDDSPrimary, 255); xxxDDraw_Puffer_leeren(lpDDSBack, 255); if(lpDDSPrimary->GetDC(&hdc) == DD_OK) { SetBkColor(hdc, RGB(0, 0, 0)); SetTextColor(hdc, RGB(255, 255, 0)); TextOut(hdc, 380, 300, "Front", lstrlen("Front")); lpDDSPrimary->ReleaseDC(hdc); } if(lpDDSBack->GetDC(&hdc) == DD_OK) { SetBkColor(hdc, RGB(255, 0, 0)); SetTextColor(hdc, RGB(255, 255, 0)); TextOut(hdc, 380, 300, "Back", lstrlen("Back")); lpDDSBack->ReleaseDC(hdc); } return TRUE; }Wäre Nett wenn ihr mir helfen könntet
-
hab das Problem gelöst