2

我在表单中有一个表单和一个面板,这是我处理 setparent 的代码,它工作正常。

hWnd = FindWindow("MapleStoryClass", null);
Panel_Handle();
SetParent(hWnd, PanelHandle);
SetWindowPos(hWnd, (IntPtr)SpecialWindowHandles.HWND_TOP,
    -3, -25, 800, 600, SetWindowPosFlags.SWP_NOSIZE);

我唯一的问题是如何确定 setparent 是否通过代码工作?我知道我可以直观地检查 setparent 是否正常工作,但我需要在我的代码中输入检查以查看 setparent 是否工作。

4

2 回答 2

1

您可以尝试使用GetParent WinApi 函数。

从上面的链接:

如果窗口是子窗口,则返回值是父窗口的句柄。如果窗口是具有 WS_POPUP 样式的顶级窗口,则返回值是所有者窗口的句柄。

如果函数失败,则返回值为 NULL。要获取扩展错误信息,请调用 GetLastError。此功能通常由于以下原因之一失败:

• 该窗口是无主的或不具有 WS_POPUP 样式的顶级窗口。
•所有者窗口有WS_POPUP 样式。

于 2012-12-02T01:34:24.187 回答
0

因为这是 C# 我只想说你可以检查 Panel.Parent 是否为空

Panel.Parent 是对 Panel 父级的引用

于 2012-12-02T01:36:48.990 回答