我的WPF應用程序有多個窗口,我想將其中一些窗口附加到另一個進程的窗口。我的問題是,一旦我附上了我的窗戶,它就變得不可見。將窗口附加到另一個進程的窗口
我用下面的代碼嘗試這樣的:
public static bool setParentWindow(IntPtr hWndChild, IntPtr hWndNewParent)
{
IntPtr previousParent = SetParent(hWndChild, hWndNewParent);
return (previousParent == null ? false : true);
}
[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
setParentWindow(myWindowHwnd, newParentHwnd);
所以,上面的代碼成功地附加窗口,但不幸的是使其不可見。
我這樣做的理由是,我試圖通過爲它構建「小部件」來擴展應用程序,我的小部件將鉤住並顯示用戶額外的信息。
這兩個窗口都有以下樣式:WS_OVERLAPPEDWINDOW,WS_OVERLAPPED,WS_VISIBLE,WS_CLIPSIBLINGS,WS_CLIPCHILDREN。
你是什麼意思,通過附加窗口?涉及的窗口有哪些窗口樣式? – Neil
@Neil:我已經添加樣式到我的問題的末尾,通過附加我的意思是我希望我的WPF窗口成爲新窗口的子節點。 – Drahcir
將父窗口重新插入其他進程非常困難。我會推薦一個不同的解決方案。 –