把窗体钉在桌面是如何实现的

把你的窗口的父窗口句柄设置为名称为Progman的窗口 的句柄就可以了。

HWND hDesktop = ::FindWindow("Progman", NULL);
//hDesktop = ::GetWindow(hDesktop, GW_CHILD);
CWnd* pWndDesktop = CWnd::FromHandle(hDesktop);
this->SetParent(pWndDesktop);

 问题:

如果有两个窗口,一个是另一个父窗口,把父窗口的父窗口设为桌面后,这两个窗口的显示位置会错乱

本来父窗口在底下,设为桌面窗口后,自窗口或者到了父窗口底下或者在其他窗口上面。不能成为一个整体。

 

你可能感兴趣的:(null)