WINCE IE浏览器定制--支持触摸屏滑动操作

来源:互联网 发布:编程技术网站 编辑:程序博客网 时间:2024/06/05 16:32

 

 

 

    由于需要在现有产品中集成WEB 浏览器,但IE自带的浏览器本身是不支持触摸屏滑动翻页的,而且IE本身用户体验也不敢恭维。有什么办法我们可以自己定制IE浏览器呢?下面将介绍如何定制IE使其支持触摸屏滑动操作。

    安装WINCE6.0后,在%_WINCEROOT%/Public/Ie/Oak 目录下有IESAMPLEIESIMPLE两个文件夹,IESAMPLECEIE的标准版本的源码,有工具栏、状态栏、地址栏,还有Internet选项、收藏夹等等。和PC WindowsIE几乎一样。而IESIMPLE是简化版本,只包含了基本的IWebBrowser控件。我们就可以基于这两个IE源码来定制我们自己需要的浏览器。IESIMPLE目录如下图所示:

 

   

    废话不多说了,下面就基于IESIMPLE源码来定制一个支持触摸滑动操作的web 浏览器。

 

      VS2005下新建一个智能设备WIN32工程,并把IESIMPLE目录下的mainwnd.cpp,mainwnd, iesimple.rc, resource.h的四个文件拷贝至新建的工程目录。你也可以 直接在PB中找到iesimple 并右键build,如下图所示,然后到PB工程realease目录下将生成的

iesimple.exe拷贝至设备运行。但这样会有一个弊端:因为PB是不支持在线调试的,而且每次build后需要手动将可执行文件拷贝至设备运行。而直接新建一个工程的话会省去这些麻烦,而且不影响WINCE600原有代码。

       首先直接编译一下,正常的话能够顺利编译通过,可以先将生成的.exe拷贝到设备运行看一下效果。

 

     要想IE能够支持滑动翻页,主要是能够让IE响应WM_MOUSEMOVE消息,但IWebBrowser控件内部本身并未对WM_MOUSEMOVE消息做处理,这里采用在消息循环中截获WM_LBUTTONDOWNWM_MOUSEMOVEWM_LBUTTONUP并将消息交给主窗体的过程处理函数处理。在mainwnd.cpp找到NewWindow线程函数,加入如下代码:

   

 

    在窗口处理函数LRESULT CALLBACK CMainWnd::MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)添加对WM_LBUTTONDOWNWM_MOUSEMOVEWM_LBUTTONUP消息处理。IE HTML页面的滑动操作主要通过调用IHTMLElement2接口的put_scrollTop方法来控制滚动条拖动。具体代码如下:

    这样就可以生成一个支持滑动操作的WebBrowser了,你还可以重新设计IE工具栏的UI,添加前进、返回、地址输入框等,这样一个全新的IE就出现了。

原创粉丝点击