zoukankan      html  css  js  c++  java
  • WPF下如何去除WebBrowser的滚动条和捕获关闭事件

    方法一:适用于VS2008

    1、在解决方案中添加“引用”
         选择 COM 下的 Microsoft html object library

    2、引入命名空间
         using mshtml;

    3、添加 WebBrowser 事件
         在 WebBrowser 的 LoadCompleted 事件里
         mshtml.HTMLDocumentClass dom = (mshtml.HTMLDocumentClass)webBrowserCygj.Document; //定义HTML
         dom.documentElement.style.overflow = "hidden";    //隐藏浏览器的滚动条 
         dom.body.setAttribute("scroll", "no");            //禁用浏览器的滚动条

    方法二:适用于VS2010

    1、在解决方案中添加“引用”
         选择 COM 下的 Microsoft html object library

    2、引入命名空间
         using mshtml;

    3、添加 WebBrowser 事件
         在 WebBrowser 的 LoadCompleted 事件里
         mshtml.HTMLDocument dom = (mshtml.HTMLDocument)webBrowserCygj.Document; //定义HTML
         dom.documentElement.style.overflow = "hidden";    //隐藏浏览器的滚动条 
         dom.body.setAttribute("scroll", "no");            //禁用浏览器的滚动条

    注1:出于MS的某些原因,在VS2010下,HTMLDocumentClass 需更改为HTMLDocument 方可生效。

    注2:通过页面代码控制浏览器窗口滚动条
            overflow-y:hidden '表示没有垂直滚动条
            overflow-x:hidden '表示没有水平滚动条
            scroll:no或overflow-x:hidden;overflow-y:hidden或overflow:hidden '让浏览器窗口永远不出现滚动条

            例:<BODY scroll="no">

    注3:“隐藏浏览器的滚动条”和“禁用浏览器的滚动条”同时使用,方可实现对所有页面有效。

    有点难描述说的是什么。大概就是下面这个图:窗体中嵌套一个Webbrowser,现在网页请求关闭

    响应MessageHook事件:

    this.webBrowser.MessageHook += webBrowser_MessageHook;
    IntPtr webBrowser_MessageHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
            {
                if(msg == 130)
                {
                    //do something
                }
                return hwnd;
            }

    这个事件不是EventHander的委托,而是HwndSourceHook的委托。

    伟大的VS并没有对其做优化处理,所以在Xaml中响应事件会出错。只能在后台自己写了。

  • 相关阅读:
    PL/SQL中关于时间的操作
    PL/SQL中关于时间的操作
    Master Data Service调用API创建Model
    ASP.NET Postback回调后参数无效
    Silverlight读取Web.config配置文件
    WCF的用户名+密码认证方式
    Trac 经验谈之(5)插件篇
    Cython 0.15,用 OpenMP 并行多核加速 Python!
    BizTalk Accelerator for HL7医疗行业消息路由处理机制
    Silverlight信息加密 通过Rfc2898DeriveBytes类使用基于HMACSHA1的伪随机数生成器实现PBKDF2
  • 原文地址:https://www.cnblogs.com/tianciliangen/p/4727396.html
Copyright © 2011-2022 走看看