我想控制CHtmlView中的浏览器窗口大小不改变,听说需要使用 DWebBrowserEvents2::WindowSetResizable。但是看了 MSDN 后不知道如何使用,如果使用 invoke 的方法,那是已经触发了 size 事件后,接收到的一个通知而已。而我的目的是希望CHtmlView中 IE 窗口不改变大小。各位指点一下?谢谢!

解决方案 »

  1.   

    WebBrowser只是一个ActiveX容器,也是一个窗口,容器窗口的大小是跟随窗口大小变化的,也就是说窗口大小变化是主动的,容器大小变化是被动的,既然你收到这个事件,说明窗口大小已经变化了。如果你不想改变窗口大小,你必须响应WebBrowser的父窗口(CHtmlView)的WM_GETMINMAXINFO 消息,在消息参数提供的结构体里把窗口的最大尺寸和最小尺寸设置成一样,你的VIEW窗口就永远不能改变大小,WebBrowser当然也不能改变了
      

  2.   

    但是WebBrowser并不是这样的,因为WebBrowser在相应某些Javascript语句的时候,其窗口大小就会发生改变。
    最典型的例子就是 window.resizeTo(400, 300),这个语句会改变 WebBroswser容器窗口的大小。<html>
    <head>
    <title>dddddd>
    </title>
    </head>
    <script language="javascript">
    window.resizeTo(400, 300); 
    </script>
    <body>dddddddddddddddddddddddddddddd
    </body>
    </html>我就是希望容易窗口的大小不受上述Javascript 的影响。