在C# Winfrom項目中,from窗體中,有一個Panel控件。
目前已經實現將對象的窗口通過winAPI獲取到句柄窗口放到了Panel控件中。
請問怎麼樣實現關閉from窗體後,下次再進入from窗體後,還通過winAPI獲取到句柄窗口放到了Panel控件中。
關閉from窗體的事情需要怎麼樣寫,才能實現通過winAPI獲取到句柄窗口放到了Panel控件中。
附上代碼(通過winAPI獲取到句柄窗口放到了Panel控件中):
private void Form2_Load(object sender, EventArgs e)
{
ptrskypeWnd = API.FindWindow("CBoxMainFrame", null);
API.SetWindowPos(ptrskypeWnd, new IntPtr(-2), 0, 0, Global.Globals.Object_WIDTH, Global.Globals.Object_HEIGHT, 0x0002);
System.Threading.Thread.Sleep(500);
MyInvoke mi = new MyInvoke(SetPanel);
BeginInvoke(mi, new object[] { ptrskypeWnd });
}
/// <summary>
/// 將嵌入Panel控件
/// </summary>
public void SetPanel(IntPtr ptrskypeWnd)
{
//label1.Text += str + System.Environment.NewLine;
API.SetParent(ptrskypeWnd, this.panel1.Handle);
API.ShowWindow(ptrskypeWnd, WindowsApi.API.SW_MAXIMIZE);
}
再Closing()事件中通過SetParent()把ptrskypeWnd還原到桌面窗口上(類名#32769),避免該窗口被連帶關閉。
下次Load()事件中就能原樣操作了。