我在FORM上直接添加了一个WEBBROWSER控件,然后当网页上有WINDOW.CLOSE消息时,就是提示:您查看的网页正在试图关闭窗口,是否关闭窗口?点击是以后,好像WEBBROWSER关闭了,我想同时把FORM也关闭了,但是我就是没有捕捉到WINDOW.CLOSE消息,网上也有说是WINDOW的一个BUG,解决的办法大多是
http://www.cnblogs.com/nabber/archive/2009/10/18/1585435.html
我也在codeproject上下了个例子来看了,但是我不明白我的为什么点击是以后,WM_PARENTNOTIFY事件就没有被触发
我的WEBBROWSER控件是放在FORM1上的,然后直接在class form1里添加的代码
        [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust")] 
        protected override void WndProc(ref Message m)
        {
            
            const int WM_SYSCOMMAND = 0x112;
            const int WM_PARENTNOTIFY = 0x210;
            const int WM_DESTROY = 0x2;
            switch (m.Msg)
            {
             case WM_PARENTNOTIFY:
                    {
                        int wp = m.WParam.ToInt32();
                        int X = wp & 0xFFFF;                        if (X == WM_DESTROY)
                        {
                            MessageBox.Show("退出");
                        }
                    }
                break;
               //......其他省略
              }
           }
        protected void OnQuit()
        {
            EventHandler h = Quit;
            if (null != h)
                h(this, EventArgs.Empty);
        }
        public event EventHandler Quit;
麻烦大家帮我看看,谢谢了

解决方案 »

  1.   

    C# Winform?直接写在Closing事件里
      

  2.   

    windows应用程序,我第一次写的,我的意思是我WEBBROWSER退出的时候,让FORM也退出,只有FORM退出才有CLOSING事件吧?
      

  3.   

    ``````
     这个.  能不能使用外部的方法来关闭 webrowse
      

  4.   

    看能不能用在事件触发的时候条件判断WEBBROWSER是否退出,然后让FPRM也close。
    我也在学习中~
      

  5.   

    重载  protected override void DefWndProc(ref Message m);
      

  6.   

    如果是直接退出FORM那就不会有这个问题了啊
      

  7.   

    请问能讲详细点吗?重载DefWndProc能捕捉到window.close消息吗