sxl_88 2015-02-13 05:32 采纳率: 50%
浏览 3406
已采纳

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条)

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退