Win32 API - CurrentWindow到Message-Only-Window并返回原始窗口

时间:2013-04-10 19:17:14

标签: windows winapi

我使用SetParent将窗口更改为仅消息窗口但是当我尝试使用SetParent恢复窗口时,我要么不让窗口恢复或者大量延迟?示例源代码。

// Change to message-only

HWND newParent = SetParent(currentHandle, HWND_MESSAGE);

// Change back

SetParent(newParent, currentHandle);

1 个答案:

答案 0 :(得分:4)

您已将参数反转。要恢复原始父级,您需要:

SetParent(currentHandle, newParent);

请记住,在这两种情况下,您都在更改窗口的父级。因此,SetParent的第一个参数必须两次都相同。

问题的一部分是您的变量命名不佳。我会这样命名:

// convert to message only
HWND previousParent = SetParent(window, HWND_MESSAGE);

// restore parent
SetParent(window, previousParent);