RE: Alt+Tab Problem
My impression of Win+D is not that it minimizes the other windows, but that it brings the Desktop to the front of the z-order. When a window is minimized, it is put at the end of the TaskSwitcher list; when the Desktop is brought to the fore, the TaskSwitcher list order is unchanged, even if there were programs already minimized.
There are three conditions that must be met for a window to appear in the TaskSwitcher. First, the Parent of the window (this is different from the Owner) must be the Desktop (or nil/NULL works, I think). Second, the window style must include the flag WS_EX_APPWINDOW and must exclude the flag WS_EX_TOOLWINDOW. Finally, the window must be enabled (children are allowed under certain circumstances, but I forget exactly what those circumstances are).
I hope this is helpful. Once these conditions are met, I believe that TaskSwitcher and Flip3D will also work correctly in Windows Vista. I had to spend a lot of time trying to get forms to show properly in Delphi, which creates a hidden window to be a parent to every form you make (and prevents TaskSwitcher, etc., from showing your window correctly).
|