sxl_88
2015-02-13 05:32
采纳率: 100%
浏览 3.4k
已采纳

C# winfrom项目,怎么样实现通过WINAPI 关闭对象的句柄窗口后,还能再次获取该句柄窗口

在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);
    }
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • Tiger_Zhao 2015-02-13 06:09
    最佳回答

    再Closing()事件中通过SetParent()把ptrskypeWnd还原到桌面窗口上(类名#32769),避免该窗口被连带关闭。
    下次Load()事件中就能原样操作了。

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题