Set window to stays always on desktop on windows7

Posted by Nuno on Stack Overflow See other posts from Stack Overflow or by Nuno
Published on 2010-05-17T23:18:35Z Indexed on 2010/05/18 9:20 UTC
Read the original article Hit count: 294

Filed under:
|
|
|
|

Hi,

I'm trying to set my window a child of the desktop, and i'm doing this like this:

HWND ProgmanHwnd = 
                ::FindWindowEx(
                    ::FindWindowEx(
                        ::FindWindow(L"Progman", L"Program Manager"), 
                        NULL, 
                        L"SHELLDLL_DefView", 
                        L""), 
                    NULL, 
                    L"SysListView32", 
                    L"FolderView");
SetParent(m_hWnd, ProgmanHwnd);

This works fine in windowsXP, my window is underneath all windows and when i press the "show desktop" option the window shows and all other "normal" windows are hide.

But in Win7 when i do the above code the same window is not displayed, in spy++ i can see that my window is a child window of the SysListView32 but it not display (and it has the WM_VISIBLE style)?

What i'm missing? or what changed from winXP to win7? how can i do this to work on win7?

Update: It's got something to do with aero theme, because if i change the desktop theme to the basic then the window is displayed, but if i switch back to one of the aero theme then is hided again.

Thanks

© Stack Overflow or respective owner

Related posts about win32

Related posts about mfc