Re: [GD-Windows] Alt+Tab in fullscreen with no other apps running
Brought to you by:
vexxed72
|
From: Oscar C. <oc...@fr...> - 2007-09-06 16:40:51
|
> Are you resetting display mode when you receive WM_SYSCOMMAND,SC_MINIMIZE?
I'm letting the default wndproc handle that message, my actual display is
managed with D3D and uses the DEVICELOST error codes to trigger resets
without touching the Win32 API.
> Also one trick more... in some apps I think I used to set a bool
> when receiveing a window resize/minimize/maximize command and then
> just eat all window size related messages without processing them
Thanks :-)
Oscar.
----- Original Message -----
From: "Alen Ladavac" <ale...@cr...>
To: "Game Development for MS Windows"
<gam...@li...>
Sent: Thursday, September 06, 2007 3:48 PM
Subject: Re: [GD-Windows] Alt+Tab in fullscreen with no other apps running
> Are you resetting display mode when you receive WM_SYSCOMMAND,SC_MINIMIZE?
>
> Also one trick more... in some apps I think I used to set a bool
> when receiveing a window resize/minimize/maximize command and then
> just eat all window size related messages without processing them
> until we empty the queue (no more messages pending). This kills all
> quirks that Windows throw on you as sideeffects of changing a window
> size.
>
> Alen
>
> Oscar wrote:
>
>> Replying to my own post...
>
>> I eventually got it working by recording the HWND passed with the
>> WM_CANCELMODE message, then next time around my game loop calling
>> ShowWindow( hWnd, SW_MINIMIZE ). This may not be the ideal solution to
>> the
>> problem so I'd still be interested in hearing if there's a better way.
>
>> Thanks to all who helped,
>
>> Oscar.
>
>
>> ----- Original Message -----
>> From: "Oscar Cooper" <oc...@fr...>
>> To: "Game Development for MS Windows"
>> <gam...@li...>
>> Sent: Thursday, September 06, 2007 12:54 PM
>> Subject: Re: [GD-Windows] Alt+Tab in fullscreen with no other apps
>> running
>
>
>>>I still haven't got this working, testing under WinXP
>>>
>>> Alen's idea gets me most of the way there, but my window gets restored
>>> immediately after being minimised. Looking through the windows message
>>> trace, it looks like the minimise completes successfully: the
>>> WM_SYSCOMMAND
>>> triggers a bunch of further messages including the WM_ACTIVATE
>>> (WA_INACTIVE)
>>> and WM_ACTIVATEAPP (wParam=FALSE). However I then immediately get a
>>> WM_ACTIVATE (WA_ACTIVE) message, which I assume is generated by Windows
>>> in
>>> response to certain properties of my window or because I'm not handling
>>> some
>>> messages correctly.
>>>
>>> In addition to Alen's code I've also tried experimenting with the window
>>> style flags, and even tried calling SetWindowPos to force my window
>>> first
>>> to
>>> the bottom of the z-order and then again to put it back on top, to make
>>> sure
>>> it's not TOPMOST, but I'm still missing something.
>>>
>>> I hate working with API's I don't know very well, I feel like such a
>>> n00b
>>> ;->
>>>
>>> Can anyone bail me out?
>>>
>>> Cheers,
>>>
>>> Oscar.
>>>
>>>
>>>
>>> ----- Original Message -----
>>> From: "Alen Ladavac" <ale...@cr...>
>>> To: <gam...@li...>
>>> Sent: Tuesday, September 04, 2007 5:03 PM
>>> Subject: Re: [GD-Windows] Alt+Tab in fullscreen with no other apps
>>> running
>>>
>>>
>>>> Hi Oscar,
>>>>
>>>> IIRC, we've always been doing something like
>>>>
>>>> if( (msg.message==WM_ACTIVATE && (LOWORD(msg.wParam)==WA_INACTIVE
>>>> ||
>>>> HIWORD(msg.wParam)))
>>>> || msg.message==WM_CANCELMODE
>>>> || msg.message==WM_KILLFOCUS
>>>> || (msg.message==WM_ACTIVATEAPP && !msg.wParam)) {
>>>>
>>>> if (bInFullScreen) {
>>>> PostMessage(NULL, WM_SYSCOMMAND, SC_MINIMIZE, 0);
>>>> }
>>>>
>>>> That seems to work for us, YMMV.
>>>>
>>>> HTH,
>>>> Alen
>>>>
>>>> Oscar wrote:
>>>>
>>>>> Hi,
>>>>
>>>>> Does anyone know if there's something I have to do (or avoid doing) to
>>>>> make
>>>>> my game minimise when the player hits Alt+Tab whilst running in
>>>>> fullscreen
>>>>> with no other apps running?
>>>>
>>>>> My game isn't minimising in pre-Vista versions of Windows, but other
>>>>> games
>>>>> seem to do so. Windows isn't sending me any WM_ACTIVATE or
>>>>> WM_ACTIVATEAPP
>>>>> messages. I am getting WM_NCACTIVATE and WM_CANCELMODE, and I'm
>>>>> passing
>>>>> these on to the default WndProc expecting it to handle any necessary
>>>>> plumbing.
>>>>
>>>>> With other apps running the Alt+Tab behaviour is correct in
>>>>> fullscreen,
>>>>> but
>>>>> in this case Windows is sending me a completely different sequence of
>>>>> messages.
>>>>
>>>>> Thanks in advance,
>>>>
>>>>> Oscar Cooper
>>>>> Lead Programmer
>>>>> Frontier Developments Ltd
>>>>
>>>>
>>>>
>>>>> -------------------------------------------------------------------------
>>>>> This SF.net email is sponsored by: Splunk Inc.
>>>>> Still grepping through log files to find problems? Stop.
>>>>> Now Search log events and configuration files using AJAX and a
>>>>> browser.
>>>>> Download your FREE copy of Splunk now >> http://get.splunk.com/
>>>>> _______________________________________________
>>>>> Gamedevlists-windows mailing list
>>>>> Gam...@li...
>>>>> https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows
>>>>> Archives:
>>>>> http://sourceforge.net/mailarchive/forum.php?forum_id=555
>>>>
>>>>
>>>>
>>>> -------------------------------------------------------------------------
>>>> This SF.net email is sponsored by: Splunk Inc.
>>>> Still grepping through log files to find problems? Stop.
>>>> Now Search log events and configuration files using AJAX and a browser.
>>>> Download your FREE copy of Splunk now >> http://get.splunk.com/
>>>> _______________________________________________
>>>> Gamedevlists-windows mailing list
>>>> Gam...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows
>>>> Archives:
>>>> http://sourceforge.net/mailarchive/forum.php?forum_id=555
>>>>
>>>
>>>
>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by: Splunk Inc.
>>> Still grepping through log files to find problems? Stop.
>>> Now Search log events and configuration files using AJAX and a browser.
>>> Download your FREE copy of Splunk now >> http://get.splunk.com/
>>> _______________________________________________
>>> Gamedevlists-windows mailing list
>>> Gam...@li...
>>> https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows
>>> Archives:
>>> http://sourceforge.net/mailarchive/forum.php?forum_id=555
>>>
>
>
>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Splunk Inc.
>> Still grepping through log files to find problems? Stop.
>> Now Search log events and configuration files using AJAX and a browser.
>> Download your FREE copy of Splunk now >> http://get.splunk.com/
>> _______________________________________________
>> Gamedevlists-windows mailing list
>> Gam...@li...
>> https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows
>> Archives:
>> http://sourceforge.net/mailarchive/forum.php?forum_id=555
>
>
>
> --
> Alen
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems? Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> Gamedevlists-windows mailing list
> Gam...@li...
> https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows
> Archives:
> http://sourceforge.net/mailarchive/forum.php?forum_id=555
>
|