实现电子文档翻页的方法技术

技术编号:2917994 阅读:298 留言:0更新日期:2012-04-11 18:40
一种实现电子文档翻页的方法,包括步骤:建立与宿主程序的连接;创建一个窗口实例,用于截获宿主程序窗口或其子窗口上的鼠标消息;将屏幕窗口划分为两个区域,其中一个区域响应上翻页事件,另外一个响应下翻页事件。本发明专利技术结合使用者的翻页点击习惯,实现了一种快速而有效的翻页方法。使用者无需在屏幕或键盘上寻找上下翻页键,只需将鼠标随手移至屏幕区域的任意一处位置进行点击,即可很自然地实现向上翻页和向下翻页。本方法可应用于浏览系统界面等各种电子文档,翻页方便,设计人性化,有利于提高文档放映和浏览的速度。

【技术实现步骤摘要】

本专利技术涉及计算机软件技术,特别涉及一种实现电子文档翻页的方法
技术介绍
通常,计算机使用者在阅读多页“电子文档”时,特别是浏览“电子文档”如Powerpoint上的幻灯片时,主要采用两种方法实现上下翻页:一种是有意识地在界面上寻找并点击上下翻页键,而一般的应用程序基本上都在屏幕右侧或窗口上某个特定的位置设置这两个按键,即用户需要将鼠标挪动到指定的位置上点击才能实现幻灯片的上下翻页;另外一种是通过键盘上的“PageUp”、“PageDown”两个按键来切换电子文档的上下页。两种方法都有一个共同的缺点:需要使用者找到按键才能实现上下翻页。如何在不影响文档放映和浏览的同时,又能实现快速而有效地达到翻页目的成为有待解决的问题。
技术实现思路
本专利技术的目的是提供一种浏览电子文档的翻页方法。为实现上述目的,一种实现电子文档翻页的方法,包括步骤:建立与宿主程序的连接;创建一个窗口实例,用于截获宿主程序任一窗口上的鼠标消息;将屏幕窗口划分为两个区域,其中一个区域响应上翻页事件,另外一个区域响应下翻页事件。本专利技术结合使用者的翻页点击习惯,实现了一种快速而有效的翻页方法。使用者无需在屏幕或键盘上寻找上下翻页键,只需将鼠标随手移至屏幕区域的任意一处位置进行点击,即可实现向上翻页和向下翻页。-->附图说明图1是在Powerpoint应用程序上实现本专利技术的模块调用关系图;图2是Powerpoint应用程序各窗口及对应窗口类名;图3是在Powerpoint应用程序上实现本专利技术的程序实现流程图。具体实施方式本实施方式是将Microsoft Powerpoint作为宿主程序来实现翻页的。Powerpoint是微软已经开发好的应用程序,因此本专利技术在Powerpoint中是作为其插件功能来实现的,如图1所示,属于COM的应用开发,COM是组件对象模型,是Component Object Model三个单词首字母的缩写。Powerpoint是微软公司推出的办公软件之一,除具有强大的文本编辑和幻灯片演示功能以外,还可以通过Add-in添加扩展功能的接口。Add-in是微软公司为方便广大开发者进一步拓展Office 2000/XP及以上版本的功能而提供的一种新技术,该技术也是基于COM技术发展而来的。利用COM、add-in技术,本专利技术划分为如下步骤:步骤(一):建立连接,获得应用程序根对象。利用Add-in技术,按照微软规定的IDTExtensibility2接口定义方法可以无缝地将所开发的插件连接到Powerpoint,从而保证Powerpoint启动后能自动加载插件,与此同时开发者还会获取Powerpoint的Application根对象,以实现对Powerpoint暴露事件API的调用。步骤(二):创建一个窗口实例,通过该窗口截获Powerpoint幻灯片放映窗口上的鼠标消息。步骤(三):利用前面的窗口实例对截获到的消息进行处理,将屏幕窗口从中间划分为上、下两个矩形区域。当用户点击屏幕上半部分矩形区域时,利用Application对象调用Powerpoint提供的API函数实现向前翻页;反之,调用向后翻页函数。以下对各步骤中的具体实现细节及所采用的技术逐一进行说明。步骤(一):建立连接,获得应用程序根对象。在阐述具体操作以前,先介绍一下应用程序插件Addins的启动原理,-->具体原理如下:1.应用程序启动后,通过注册表或者存放于其他任何地方获得插件列表。插件一般以COM组件形式提供,故此只要有一个插件的CLSID或者ProgID,即用于标识COM组件,每个COM组件在Windows注册表中都有自己的CLSID,以便让其他应用程序加载。另外,插件的功能可以千差万别,但是需要实现一个统一的接口,例如_IDTExtensibility2或者类似接口。2.遍历插件列表,创建并初始化各插件。关键是初始化。应用程序不必知道插件能做什么,只是取得_IDTExtensibility2或者类似接口,调用其中的初始化函数,如函数OnConnection()。3.插件在初始化的时候,应用程序会自动把自身的DOM模型的根接口通常称为Application传递进来。在_IDTExtensibility2中,根接口被定义为IDispatch类型,即IDispatch* Application。有了这个Application根对象,插件就可以调用想要调用的任何API。实际开发过程中可以采用VC++ATL即活动模板库进行开发,如图3中所示的第一步。开发者在利用VC向导生成ATL COM Appwizard工程的同时,必须实现一个_IDTExtensibility2派发接口,该接口的实现,可使VC++为待开发工程自动生成以下5个可用来操纵被开发插件以及宿主程序的接口函数,其分别是:1.OnConnection:装载插件到内存时调用,即宿主程序启动时自动装载插件。2.OnDisconnection:从内存中卸载插件时调用。3.OnAddinsUpdate:COM插件改变时调用。4.OnStartupComplete:当应用程序启动时插件刚装载完成时调用。5.OnBeginShutdown:当应用程序关闭时插件刚卸载完成时调用。一般来讲,开发者需要重新编写OnConnection和OnDisconnection中的代码。特别需要指出的是:OnConnection函数传递宿主程序(本实施例指Powerpoint)的根对象,为以后实现对应用程序暴露事件的调用提供了便利条件。该函数原型如下:OnConnection(IDispatch* Application,-->ext_ConnectMode ConMode,IDispatch* AddInInst,LPSAFEARRAY* Custom);各参数意义见下表: 参数说明Application对集成开发环境的一个实例的引用,该实例为宿主程序的根对象。ConnectMode一个ext_ConnectMode枚举值,宿主程序加载外接程序的方式。AddInInst一个对外接程序自身的实例的AddIn引用。Custom一个空数组,可用来传递在外接程序中使用的特定数据。由此可见,开发者可设置IDispatch*类型的全局变量在OnConnection函数中将Application记录并传递到外接程序中来,以便插件内部其它模块的调用。步骤(二):创建一个窗口实例,通过该窗口截获应用程序中某一窗口上的鼠标消息。本实施例中,本专利技术是在Powerpoint的幻灯片窗口上实现“自然翻页”功能,即只有获得Powerpoint幻灯片窗口的句柄,才能对该窗口上的用户消息进行相应地处理,如图3中的第二步所示。本专利技术是按照如下步骤来截获Powerpoint幻灯片窗口上的消息:第一步:获得Powpoint应用程序的主窗口句柄。第二步:利用主窗口句柄获得当Powpoint中需要进行消息处理的子窗口句柄。第三步:创建一个窗口实例,通过该窗口实例对上一步获得的子窗口进行子类化处理,以便截获子窗口上的用户消息。在本专利技术的实际开发中,只需调用三个API函数即可实现上述三步,分别是:GetForegroundwindow、FindWindowEx以及本文档来自技高网...

【技术保护点】
一种实现电子文档翻页的方法,包括步骤: 建立与宿主程序的连接; 创建一个窗口实例,用于截获宿主程序任一窗口上的鼠标消息; 将屏幕窗口划分为两个区域,其中一个区域响应上翻页事件,另外一个区域响应下翻页事件。

【技术特征摘要】
1.一种实现电子文档翻页的方法,包括步骤:建立与宿主程序的连接;创建一个窗口实例,用于截获宿主程序任一窗口上的鼠标消息;将屏幕窗口划分为两个区域,其中一个区域响应上翻页事件,另外一个区域响应下翻页事件。2.根据权利要求1所述的方法,其特征在于,所述窗口包括宿主程序窗口和宿主程序的子窗口。3.根据权利要求1所述的方法,其特征在于,所述建立与宿主程序的连接包括:作为程序本身功能的开发,只需建立主程序与功能模块之间的调用关系。4.根据权利要求1所述的方法,其特征在于,所述建立与宿主程序的连接包括:作为应用程序插件功能的开发,需要按照程序规定的接口定义的方法建立接口,以实现程序对插件的加载和初始化。5.根据权利要求1所述的方法,其特征在于,所述创建一个窗口实例,用于截获宿主程序任一窗口上的鼠标消息包括,用于截获宿主程序窗口的鼠标信息,还包括用于截获宿主程序子窗口的鼠标信息;进一步包括如下步骤:建立一个从MFC CWnd中派生的窗口类;对窗口派生类进行实例化;利用创建的窗口实例对应用程序需要实现自然翻页功能的窗口进行子类化处理,以截取相应窗口上的用户信息。6.根据权利要求5所述的方法,其特征在于,所述应用程序需要实现自然翻页功能的窗口获得过程包括:截获应用程序的窗口消息,只需获得前台应用程序的窗口句柄。7.根据权利要求5所述...

【专利技术属性】
技术研发人员:郑士奇钮兴昱
申请(专利权)人:汉王科技股份有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1