在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);
}
------解决思路----------------------
在你的窗体打开之前,外部窗体肯定是先打开了吧
那么在你的窗体关闭后,外部窗体哪里去了,回到外部了吗,还是随着你的窗体一起关闭了?
可以试试先把它移出panel,让它回到外面,再关闭你的窗体
------解决思路----------------------
API.SetParent(ptrskypeWnd, this.panel1.Handle);
这是把它放进去
你试试API.SetParent(ptrskypeWnd, null);
或者把null换成0,总之让它没有父窗体