DirectDraw and minimizing windows...

Started by
7 comments, last by Destroyer 22 years, 3 months ago
Hi, My problem is when I do directdraw in Fullscreen Mode, and I minimize it, the ->Flip method always fails over and over again... each time it loops over. Is there anyway to fix this? Disable Crtl+Alt+Del and Alt+Tab? - How? Or know when the window gets minimized, and what would you do to make sure the error doesn''t happen? Any help? Thanks, Eric //---------------------------- In a world without boundaries - who needs gates or windows ? ----------------------------\\
Advertisement
Set a flag somewhere when your game loses focus, and stop the game loop. When you get focus again (or go fullscreen or whatever), restore your stuff and start going again.
Well, all surface get lost when your fullscreen app loses the focus. If you're using DX8, have a look at the chapter dealing with lost devices (especially the IDirect3DDevice8::Reset method). If you're using an older version, look at the chapter loosing surfaces (and you have to call the Restore method of you're surface objects).
Anyway you have to restore the contents of your surfaces (textures).
You should be able to find an example in the DX-SDK.

Edited by - VolkerG on January 1, 2002 5:47:55 PM
i am taiwanese, so my english no good, i use DirectX 7.0

like this:

BOOL MyScreen:resent(VOID)
{
if(m_pDD == NULL) return E_FAIL;
if(m_pBackBuffer == NULL) return E_FAIL;
if(m_pPrimaryBuffer == NULL) return E_FAIL;

if(IsIconic(m_hWnd)) return TRUE; /* minimize icon, don''t flip */

m_pPrimaryBuffer->Flip(NULL, DDFLIP_WAIT);

return TRUE;
}


Disable Ctrl + Alt + Del:
m_pDD->SetCooperativeLevel(hWnd, DDSCL_EXCLUSIVE |
DDSCL_FULLSCREEN |
DDSCL_ALLOWMODEX |
DDSCL_ALLOWREBOOT);
Remove DDSCL_ALLOWREBOOT Flag.

Disable Alt+Tab
i don''t know, how do to this.


made in taiwan, perfact.
Hi,

Well at least I know how to disable CRTL+ALT+DEL - but first off let me remind you that I''m using DirectDraw - NOT Direct3D! Second off - I''m wondering how I can tell when the window is being minimized and when it''s not... not that I should have a flag/bool when its minimized or not - that''s a given.

Any other help?

Eric

//----------------------------
In a world without boundaries -
who needs gates or windows ?
----------------------------\\
i am taiwanese, so my english no good, i use DirectX 7.0

you can hook WM_ACTIVATE message,like this:

case WM_ACTIVATE:
if(LOWORD(wParam) == WA_INACTIVE || (BOOL)HIWORD(wParam))
{
Pause(TRUE);
}
else /*if(LOWORD(wParam) == WA_ACTIVE) ||
LOWORD(wParam) == WA_CLICKACTIVE))*/
{
Pause(FALSE);
}
break;

well, now you know your program is activate or not.

made in taiwan, perfact.
WM_SIZE
fwSizeType = wParam; // resizing flag
nWidth = LOWORD(lParam); // width of client area
nHeight = HIWORD(lParam); // height of client area

learn some WinApi before being rude to people who just want to help


Hey I wasn't trying to be rude. I appreciate all help, it sometimes just bugs me when people reply to posts they haven't read properly or completely... any help, even if it's wrong is still appreciated. I appreciate all help from anyone taking their time to answer a question.

Thanks!

Eric

//----------------------------
In a world without boundaries -
who needs gates or windows ?
----------------------------\
BTW: I know the Windows API pretty darn well, but I didn't know that WM_SIZE counts when minimizing. I thought it was only when the user drags the window to make it bigger or smaller, and I didn't think it would apply to my problem anyway since my program is running in fullscreen...

I'll give both the WM_ACTIVATE, and WM_MOVE messages a try...

Thanks again!

Edited by - Destroyer on January 2, 2002 10:01:34 AM
i am taiwanese, so my english very poor, i use DirectX 7.0

don''t angry.
my english very poor, so some words and expressions i don''t understand.
if you written simple words or expressions or some source code,
maybe easy help you.

This topic is closed to new replies.

Advertisement