2

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

// Change to message-only

HWND newParent = SetParent(currentHandle, HWND_MESSAGE);

// Change back

SetParent(newParent, currentHandle);
4

1 回答 1

4

你已经把参数颠倒了。要恢复原始父级,您需要:

SetParent(currentHandle, newParent);

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

部分问题是您的变量命名不当。我会这样命名它们:

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

// restore parent
SetParent(window, previousParent);
于 2013-04-10T19:46:34.000 回答