一种在多区域内同时显示鼠标的装置和方法

文档序号:6571935阅读:220来源:国知局
专利名称:一种在多区域内同时显示鼠标的装置和方法
技术领域
本发明涉及计算机应用处理技术,尤其涉及一种能够在多区域内同时显示鼠标的装置和方法。
背景技术
现在计算机应用处理技术中,大部分软件利用鼠标作为用户输入的主要手段,但是由于 硬件的限制和其他的原因, 一个应用软件只能使用系统的一个鼠标。
在很多软件中都存在着一份文档可对应多个视图显示的功能,这些视图从各自的角度反 映了文档的数据。每一个视图都可以用来操作文档的数据,而在一个视图上操作对文档的改 变,通常会反映到其他的视图上,这种反应有时是即时的,有时是非即时的。例如在幻灯片 播放软件中,有一类功能被称作双屏扩展模式,意思就是指系统将两个显示器合并为一整个 大的显示区域,不同的显示器只显示这个大区域的一部分,系统可以在这两个显示器上显示 不同的内容,该功能必须在硬件上有两个显示器的时候才可以使用,其中的一个显示器是观 众可以看见的,通常是投影仪,软件在观众所观看的显示器上的显示区域叫做观众视图。另 外的一个视图由演讲者控制,演讲者可以控制幻灯片的播放进程,我们将其叫做演讲者视图。 观众视图和演讲者视图显示的是相关但不完全相同的内容,这样做的好处是,演讲者可以做 某些操作,而这些操作又不必让观众看到。通常这样的需求发生在演讲者需要临时查看即将 演讲的内容,或者査看刚才提问的答案的时候,这些信息通常不希望被观众看到,或者这些 信息可能并没有放在正在播放的文档中,而是放在其他软件才可以査看的文件中,比如word, excel等等。
将演讲者视图和观众视图分开有好处,同时也有坏处。好处是演讲者对观众可以屏蔽掉 不必看到的东西;坏处是当演讲者需要给观众讲解演讲稿上的某些内容,而讲解这些内容又 与讲稿上的位置相关的时候,演讲者实际上需要一个类似教鞭的东西来指示观众视图上他想 讲解的地方。通常在非双屏扩展模式情况下,演讲者可以用鼠标指针来提示观众他现在需要 讲解的位置,因为在非双屏扩展模式下,系统工作在屏幕拷贝的模式下, 一个屏幕上面显示 的任何内容都和另外的一个屏幕显示的一样。但是在双屏扩展模式中就不可能做到这样一点, 双屏扩展模式下系统工作在显示器扩展状态下,两个显示器实际上可以认为仅仅有一个,即 只是一个显示桌面的整体,只是现在两个显示器分别显示桌面的一部分,而观众视图和演讲者视图分布在不同的窗口中。在正常情况下,演讲者是面对观众,演讲者视图背对观众,而 演讲者背对观众视图,如果将鼠标移动到演讲者视图上面,观众不可能看到鼠标的位置,而 如果移动到观众视图上面,演讲者自己又看不到鼠标。产生这个问题的原因在于鼠标是一个 系统设备,而这样设备是所有的软件共享的,鼠标指针仅仅有一个,而现在需要同时显示两 个鼠标, 一个显示给观众看,另外一个需要显示给演讲者自己,如果不模拟鼠标的话,是不 可能同时满足这两点要求的。对于多屏扩展模式下,情况也类似。

发明内容
为了克服现有的计算机应用处理技术中解决双屏扩展模式下各视图都需要鼠标指示的技 术方案的不足,本发明的目的在于提供一种在多区域内同时显示鼠标的装置和方法,使得 应用软件可以在需要的时候使用任意多个鼠标来指示用户的输入,本发明的鼠标模拟的解决 方案,不仅可以用在播放软件的双屏鼠标模拟中,实际上它满足了任何需要在不同屏幕区域 同时显示鼠标的需求。
本发明解决其技术问题所采用的技术方案是-
一种在多区域内同时显示鼠标的装置,包括有计算机鼠标和应用软件,所述应用软件包

窗口管理系统作为运行支持图形用户界面的操作系统下的应用软件的基本控制模块,
是对操作系统已经提供的窗口管理功能的包装和扩充,主要处理操作系统向应用软件发送的 与窗口管理相关的消息;
文档绘制系统用以将软件的逻辑数据,转化为人可以理解的图形和图像的模块,通过 调用操作系统的图形绘制命令,将应用软件数据转化为文字图像,各种图形或表格,应用软 件中的其他模块通过调用文档绘制系统中的服务将自己的数据转化为软件使用者容易理解的 图像显示在应用软件的窗口中;
所述在多区域内同时显示鼠标的装置还包括有模拟鼠标系统,所述模拟鼠标系统包括有
主装置用以管理应用软件对鼠标模拟的请求,并且负责管理各个视图鼠标模拟子装置 的创建、销毁和它们之间的协同运作;
视图鼠标模拟子装置所述视图鼠标模拟子装置用以将应用软件的鼠标模拟任务划分为 一个个具体的在应用软件的各个视图上面进行的鼠标模拟子任务,每个需要模拟的视图都对 应一个视图鼠标模拟子装置;
所述主装置是视图鼠标模拟子装置和应用软件其他模块之间交换数据的桥梁,同时负责 检测当前的系统鼠标的状态。所述视图鼠标模拟子装置还包括有
鼠标计算装置用以收集视图鼠标模拟子装置所对应的视图信息和原始鼠标位置信息, 计算出模拟的鼠标的位置、大小、形状和其他参数;
鼠标绘制装置用以根据鼠标计算装置的结果,调用文档绘制系统服务,将模拟的鼠标 绘制出来。
一种在多区域内同时显示鼠标的方法,其中,应用软件启动时,同时启动窗口管理系统, 打丌文档,并启动文档绘制系统;
用户给出指令,应用程序判断是否需要进行鼠标模拟;
当应用程序判断需要启动鼠标模拟主装置时,启动主装置,并根据需要将数据传递到主 装置;
主装置收到数据后,保存该数据,并且根据数据对每一个需要模拟鼠标的视图创建一个 或多个单视图鼠标模拟子装置;
所述视图鼠标模拟子装置将应用软件的鼠标模拟任务划分为一个个具体的在应用软件的 各个视图上面进行的鼠标模拟子任务,每个需要模拟的视图都对应一个视图鼠标模拟子装置;
鼠标计算装置收集视图鼠标模拟子装置所对应的视图信息和原始鼠标位置信息,计算出 将要模拟的鼠标的位置、大小、形状和其他参数;
鼠标绘制装置根据鼠标计算装置的结果,调用文档绘制系统服务,将模拟的鼠标绘制出
来;
当用户给出指令,应用程序判断不需要进行鼠标模拟时,应用程序销毁主装置; 工作结束。
本发明的有益效果是采用本发明的一种在多区域内同时显示鼠标的装置和方法,除了 包括有窗口管理系统和文档绘制系统外,还设有用以管理应用软件对鼠标模拟的请求,并且 负责管理各个视图鼠标模拟子装置的创建、销毁和它们之间的协同运作的主装置,所述主装 置又包括有视图鼠标模拟子装置,使得应用软件可以在需要的时候使用任意多个鼠标来指示 用户的输入,不仅可以用在播放软件的双屏鼠标模拟中,实际上它满足了任何需要在不同屏 幕区域同时显示鼠标的需求。


图1是本发明一种在多区域内同时显示鼠标的装置的应用软件结构示意图2是本发明一种在多区域内同时显示鼠标的装置的视图鼠标模拟子装置的结构示意图3是本发明一种在多区域内同时显示鼠标的装置的主装置连接多个视图鼠标模拟子装 置的结构示意图4是本发明一种在多区域内同时显示鼠标的装置进入双屏扩展模式播放状态应用中, 演讲者视图和观众视图的示意图5是本发明一种在多区域内同时显示鼠标的方法的工作流程图6是本发明一种在多区域内同时显示鼠标的方法的主装置执行鼠标模拟逻辑的工作流 程图7是本发明一种在多区域内同时显示鼠标的方法的初始化视图鼠标模拟子装置的工作 流程图8是本发明一种在多区域内同时显示鼠标的方法的主装置动态检测逻辑的工作流程
图9是本发明一种在多区域内同时显示鼠标的方法的绘制模拟鼠标的工作流程图io是本发明一种在多区域内同时显示鼠标的方法的模拟鼠标效果示意图。
具体实施例方式
模拟鼠标系统是在应用软件(如金山演示WPS Office Presentation)中的一部分,如果需 要用到多鼠标指示的功能,将本系统以下面所示的方式嵌入应用软件系统中,应用软件定义 为在计算机系统上面运行的带窗口的软件。
本发明中文档定义为应用软件为了保存它所实现功能需要的数据,在磁盘或内存中组织 的数据结构的集合,文档不限于磁盘文件,任何有用的应用软件运行时必定在操作它的文档。
视图定义为应用软件在窗口中的一个区域,该区域显示了它的文档内容的一部分。
焦点视图定义为系统鼠标位置所指向的视图。
模拟鼠标定义为计算机系统上面的一块可以用物理鼠标来操控的图像,它一般会随着物 理鼠标的移动而移动,它用来指示视图上的位置,并且它在移动的时候象系统鼠标那样不能 破坏它所在的视图的图像。
模拟鼠标活动区域是视图上的一个区域,当系统鼠标处于该区域的时候,希望模拟鼠标 出现在本该系统鼠标出现的地方,同时其他视图上的鼠标活动区域对应的地方出现模拟的鼠 标。 一般将其定义为同视图一样的大小和位置。
鼠标活动区域是成比例的,当系统鼠标从焦点视图的鼠标模拟区域的一边移动到对边的
时候,其他模拟鼠标活动区域上的模拟鼠标也应该从它们对应的一边移动到对边。
12应用软件启动的时候,有一个或者一个以上的窗口用来显示它的文档内容。 当用户以某种方式(比如菜单、工具条、热键等方式)执行某个指令后,应用软件启动
主装置。
当系统的鼠标处于应用软件某个模拟鼠标活动区域的时候,用户至少看到了两个鼠标, 而其中两个鼠标都出现在模拟视图活动区域内,并且至少有一个是模拟的鼠标。
本发明所述的一种在多区域内同时显示鼠标的装置,包括有计算机鼠标和应用软件,所 述应用软件包括,如图l所示
窗口管理系统作为运行支持图形用户界面的操作系统下的应用软件的基本控制模块, 是对操作系统已经提供的窗口管理功能的包装和扩充,主要处理操作系统向应用软件发送的 与窗口管理相关的消息;操作系统,例如Microsoft Windows系列、MacOS等,窗口管理系 统是操作系统下的应用软件的基本控制模块,处理操作与窗口管理相关的消息,如窗口的创 建、移动、大小改变、更新绘制、鼠标移动、键盘的动作等等。
文档绘制系统用以将软件的逻辑数据,转化为人可以理解的图形和图像的模块,通过
调用操作系统的图形绘制命令,将应用软件数据转化为文字图像、各种图形或表格,应用软 件中的其他模块通过调用文档绘制系统中的服务将自己的数据转化为软件使用者容易理解的
图像显示在应用软件的窗口中;
所述在多区域内同时显示鼠标的装置还包括有模拟鼠标系统,所述模拟鼠标系统包括有
主装置用以管理应用软件对鼠标模拟的请求,并且负责管理各个视图鼠标模拟子装置 的创建、销毁和它们之间的协同运作;主装置是应用软件中的一部分,是视图鼠标模拟子装 置和应用软件其他模块之间交换数据的桥梁,同时它还负责检测当前系统鼠标的状态。
视图鼠标模拟子装置所述视图鼠标模拟子装置用以将应用软件的鼠标模拟任务划分为 一个个具体的在应用软件的各个视图上面进行的鼠标模拟子任务,每个需要模拟的视图都对 应一个视图鼠标模拟子装置;
在应用软件的各个视图上面的鼠标模拟子任务,如金山WPS Presentation在双屏扩展模式 下播放,在绘制荧光笔的时候需要同时在演讲者视图和观众视图上面模拟鼠标,每个需要模 拟的视图都对应一个视图鼠标模拟子装置。
所述主装置是视图鼠标模拟子装置和应用软件其他模块之间交换数据的桥梁,同时负责 检测当前的系统鼠标的状态。
如图2所示,所述视图鼠标模拟子装置还包括有
鼠标计算装置用以收集视图鼠标模拟子装置所对应的视图信息和原始鼠标位置信息,
计算出模拟的鼠标的位置、大小、形状和其他参数;鼠标绘制装置用以根据鼠标计算装置的结果,调用文档绘制系统服务,将模拟的鼠标 绘制出来。
如图5所示, 一种在多区域内同时显示鼠标的方法,其中,应用软件启动时,同时启动 窗口管理系统,打开文档,并启动文档绘制系统;
用户给出指令,应用程序判断是否需要进行鼠标模拟;
当应用程序判断需要启动鼠标模拟主装置时,启动主装置,并根据需要将数据传递到主 装置;
主装置收到数据后,保存该数据,并且根据数据对每一个需要模拟鼠标的视图创建一个 或多个单视图鼠标模拟子装置;
所述视图鼠标模拟子装置将应用软件的鼠标模拟任务划分为一个个具体的在应用软件的 各个视图上面进行的鼠标模拟子任务,每个需要模拟的视图都对应一个视图鼠标模拟子装置;
鼠标计算装置收集视图鼠标模拟子装置所对应的视图信息和原始鼠标位置信息,计算出 将要模拟的鼠标的位置、大小、形状和其他参数;
鼠标绘制装置根据鼠标计算装置的结果,调用文档绘制系统服务,将模拟的鼠标绘制出
来;
当用户给出指令,应用程序判断不需要进行鼠标模拟时,应用程序销毁主装置; 工作结束。
如图6所示, 一种在多区域内同时显示鼠标的方法,其中,主装置执行鼠标模拟逻辑的 工作步骤为
歩骤一主装置逻辑开始;
步骤二根据需要创建视图鼠标模拟子装置;
歩骤三初始化视图鼠标模拟子装置;
歩骤四计算当前系统鼠标是否处于某个视图区域内,如是,进入歩骤五,如否,进入 歩骤七;
歩骤五隐藏系统鼠标; 步骤六绘制出模拟鼠标; 歩骤七主装置动态检测逻辑。
如图7所示, 一种在多区域内同时显示鼠标的方法,其中,初始化视图鼠标模拟子装置 的工作步骤为歩骤一初始化视图鼠标模拟子装置开始; 歩骤二创建鼠标计算子装置初始化; 步骤三创建鼠标绘制装置;
歩骤四计算鼠标与视图相对位置传递给主装置; 歩骤五初始化结束。
如图8所示, 一种在多区域内同时显示鼠标的方法,其中,主装置动态检测逻辑的工作 步骤为
歩骤一主装置动态检测逻辑开始;
步骤二检测鼠标移动和视图改变事件,如发生鼠标移动,进入步骤四,如发生视图縮 放,进入步骤三;
步骤三通知视图鼠标模拟子装置改变视图大小,进入步骤六; 歩骤四通知视图鼠标模拟子装置鼠标相对位置改变信息;
步骤五计算当前系统鼠标是否处于某个视图区域内,如是,进入步骤六;如否,进入 步骤九;
步骤六擦除模拟的鼠标,进入步骤七; 歩骤七隐藏系统鼠标; 步骤八绘制出模拟鼠标,进入步骤一; 歩骤九擦除模拟的鼠标,进入步骤一。
如图9所示, 一种在多区域内同时显示鼠标的方法,其中,绘制模拟鼠标的工作歩骤为 歩骤一绘制模拟鼠标开始;
步骤二计算各个视图下模拟鼠标的位置大小; 步骤三保存被模拟鼠标覆盖的视图区域; 歩骤四根据鼠标的形状描述绘制模拟鼠标; 步骤五绘制模拟鼠标结束。
所述一种在多区域内同时显示鼠标的方法,其中,应用软件启动时,同时启动窗口管理
系统,打开文档,并启动文档绘制系统根据文档中的数据在窗口的视图上绘制文档的内容,
如果有多个视图,就要分别绘制;所述一种在多区域内同时显示鼠标的具体工作步骤为
(1)应用软件检测到需要启动鼠标模拟主装置的命令时,启动主装置,并根据需要将数据一传递到主装置;
所述数据一包括但不局限于如下参数-
1.1、 文档窗口个数(nDocWinCount)
1.2、 nDocWinCount个窗口描述,每一项数据描述如下
1.2.1、 窗口标志符
1.2.2、 窗口相对屏幕的位置和大小
1.3、 需要模拟鼠标的视图的个数(nViewCount)
1.4、 nViewCount项视图信息描述,每一项数据描述如下
1.4.1、 视图所在的文档窗口的标志符
1.4.2、 视图标志符
1.4.3、 视图相对于文档窗口的位置和大小
1.4.4、 模拟鼠标在视图中的活动边界
1.4.5、 鼠标相对于视图的大小
1.4.6、 鼠标的形状描述,可以包含但是不局限于如下信息
1.4.6.1、 鼠标形状图片,图片格式是TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一种,优选方式为BMP格式;
1.4.6.2、 鼠标的路径描述
1.4.6.3、 鼠标的颜色
1.4.7、 鼠标的热点相对于鼠标的形状的位置
1.5、 系统鼠标当前相对于屏幕的位置
(2) 主装置收到数据一后,保存该数据,并且根据数据一对每一个需要模拟鼠标的视图 创建一个单视图鼠标模拟子装置,并且根据数据一将数据二传递到单视图鼠标模拟子装置;
所述数据二包括但不局限于如下参数
2.1、 窗口相对屏幕的位置和大小
2.2、 视图相对于文档窗口的位置和大小
2.3、 模拟鼠标在视图中的活动边界
2.4、 鼠标相对于视图的大小
2.5、 鼠标的热点相对于鼠标的形状的位置
2.6、 系统鼠标当前相对于屏幕的位置
(3) 单视图鼠标模拟子装置收到数据二后,保存数据二,并且创建鼠标计算装置和鼠标
绘制装置,并根据数据二,将数据三传给鼠标计算装置,将数据四传递给鼠标绘制装置,鼠标绘制装置保存该信息;
所述数据三包括但不局限于如下参数
3.1、 窗口相对屏幕的位置和大小
3.2、 视图相对于文档窗口的位置和大小
3.3、 模拟鼠标在视图中的活动边界
3.4、 系统鼠标当前相对于屏幕的位置
所述数据四包括但不局限于如下参数
4.1、 鼠标相对于视图的大小
4.2、 鼠标的形状描述,可以包含但是不局限于如下信息
4.2.1、 鼠标形状图片,图片格式是TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一种,优选方式为BMP格式;
4.2.2、 鼠标的路径描述
4.2.3、 鼠标的颜色
4.3、 模拟鼠标的热点相对于模拟鼠标的形状的位置
(4) 鼠标计算装置收到数据三后计算系统鼠标的位置是否正好处于对应的模拟鼠标的活 动边界,并且将此信息传给单视图鼠标模拟子装置,单视图鼠标模拟子装置保存这一信息;
(5) 主装置创建完所有需要创建模拟鼠标的视图后,建立起子装置和视图的一一对应关 系,对应关系的数据描述如数据五所示;然后检査所有的子装置中的数据项,如果系统鼠标 恰好处于某一个视图中的模拟鼠标活动边界之内,该视图我们叫做焦点视图,进入步骤(6), 否则系统初始化完毕进入步骤(10);
所述数据五包括但不局限于如下参数
5.1、 文档窗口标志符
5.2、 视图标志符
5.3、 视图鼠标模拟子装置标志符
(6) 主装置将当前的系统鼠标的位置传递给焦点视图的视图鼠标模拟子装置,并要求该 视图鼠标模拟子装置计算出模拟鼠标相对于其活动边界比例位置,模拟鼠标相对于其活动边 界的比例为数据六,并将这一信息传递给主装置;
所述数据六包括但不局限于如下参数 6.1、模拟鼠标相对于其活动边界的比例
(7) 主装置将数据六传递给所有的视图鼠标模拟子装置,视图鼠标模拟子装置将数据六
中的鼠标位置信息传递到鼠标位置计算子装置,计算出模拟鼠标的相对于视图的位置和大小,并且将这一信息传递给主装置,该信息为数据七; 所述数据七包括但不局限于如下参数
7.1、 模拟鼠标的位置,相对于视图区域
7.2、 模拟鼠标的大小
(8) 主装置将数据七传递到视图绘制系统,并要求视图绘制系统将数据七中对应的视图 中的区域保存在数据八中,并传回主装置,数据八记录了当前视图模拟鼠标区域所覆盖的文 档视图显示的图像内容,如果模拟鼠标移动位置,数据八可以用来恢复模拟鼠标刚才所占的 文档视图区域,并将数据八传递到对应的视图鼠标模拟子装置中,视图鼠标模拟子装置将这 信息保存起来;
所述数据八包括但不局限于如下参数
8.1、 图像在视图上的位置
8.2、 图像在视图上的大小
8.3、 图像内容,视图在该区域的精确描述, 一般采用BMP格式来描述
(9) 主装置要求所有的视图鼠标模拟子装置生成对应视图的模拟鼠标的图像信息,即数 据九,并将该数据传递到视图绘制系统中,视图绘制系统根据数据九,在对应的地方绘制出 模拟鼠标的图像,用户能够看见模拟鼠标;主装置隐藏系统鼠标;
所述数据九包括但不局限于如下参数
9.1、 图像在视图上的位置
9.2、 图像在视图上的大小
9.3、 图像内容,可以是图片格式TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一种,优选方式为BMP格式;或者是自定义的绘制命令序列;
(10) 主装置不停检测视图是否被改变,如果某个视图改变,主装置从对应的视图鼠标 模拟子装置中取出数据八,根据数据八中的模拟鼠标的位置,要求视图绘制系统重新生成数 据八并传回主装置,并将数据八传入视图鼠标模拟子装置,保存起来;
(11) 如果主装置监测到了系统鼠标的移动,主装置要求所有的视图鼠标模拟子装置将 它保存的数据八传递给自己,并且将该数据传递到视图绘制系统,视图绘制系统根据数据八 恢复鼠标刚才占据的位置,如果视图鼠标模拟子装置在之前并没有保存数据八,就什么也不 做;
(12) 主装置将新的系统鼠标位置传递给每一个视图鼠标模拟子装置,视图鼠标模拟子
装置收到该信息后计算系统鼠标的位置是否正好处于对应的模拟鼠标的活动边界之内,并且
将这一信息传递到主装置;如果系统鼠标恰好在某一个模拟鼠标的活动边界之内,则转(6)重复这一过程,否则转到(10),重复(10)到(11)部分的过程; (13)应用软件检测到不需要鼠标模拟的命令时,销毁主装置。
在本系统中模拟鼠标的移动的恢复数据是由系统的视图绘制系统提供的,实际上也可以 通过操作系统保存模拟鼠标对应的区域的图像信息,只是这样一来,系统需要在鼠标模拟和 视图绘制系统之间同歩视图的可视内容,这就增加了系统的复杂度。另外就是主装置对视图 改变的检测过程可以根据视图实际需要改变的区域和模拟鼠标的区域进行优化,只有当两者 相交的时候才需要更新数据八。
需要注意的是,主装置的检测活动可以是主动的或者是被动的。主动检测的意思就是主 装置一直控制系统的执行流程,随时査询系统的状态,这里检测系统鼠标的移动就是调用操
作系统的API (Application Program Interface应用程序编程接口 )。而被动检测就是指系统的 控制只是局部受到主装置的控制,具体来说就是系统的流程还是由应用软件本身来控制,主 装置向应用软件注册它感兴趣的事件或消息,当对应的事件或消息产生的时候,应用软件通 知主装置,并将事件相关的数据传递给它,如果主装置认为该事件需要自己处理,就执行它 的控制过程,执行完毕后将控制返回,应用软件再检测事件,如此循环。
有一种可以节约资源的方式是,对于焦点视图上的模拟鼠标处理方法为,直接使用系统 鼠标而不进行模拟,此时焦点视图对应的视图鼠标模拟子装置仅仅起到计算模拟鼠标位置比 例的作用,不需要保存模拟鼠标当前在视图土的图像信息。但是这样做也会丧失一些灵活性, 现在的操作系统对动态的鼠标支持的不够好,如果想鼠标不停地改变它的形状、大小、颜色、 透明度、甚至3d的效果的话,系统鼠标是不能够满足要求的。
下面以金山演示(WPS Office Presentation)中绘制荧光笔时的鼠标模拟来说明本发明的 工作过程
1、打丌金山演示WPS Office Presentation,进入双屏扩展模式播放状态应用中,演讲者 视图和观众视图的示意图如图4所示,演讲者视图可看到多个视图的縮略视图1、縮略视图2、 縮略视图3、縮略视图4、缩略视图5、縮略视图6,以及作为主显示区域的縮略视图6的放 大视图60;而观众视图只能看到縮略视图6的放大视图600。
左边的是演讲者视图,通常显示在演讲者电脑上,右边的是观众视图,通常显示在投影
仪上,两个视图分别显示在不同的显示器上,点击绘制荧光笔按钮,此时如果用户需要在演
讲者视图上面绘制荧光笔,当鼠标在演讲者的视图区域时,需要在演讲者视图区域显示绘图
鼠标,以显示绘制点,同时也需要显示在观众视图上面,以便观众可以看见鼠标绘制的过程
和绘制点。因此需要模拟出两个鼠标来,系统启动主装置,执行系统工作原理中的(1)到(5)歩,建立如图3所示的主装置,其中视图鼠标模拟子装置A对应演讲者视图,视图鼠标模拟 子装置B对应观众视图。
2、 此时鼠标仍旧处于荧光笔绘制按钮上面,因此主装置的工作状态根据(5)歩的结 果,转移到歩骤(10)。
3、 在金山演示WPS O伍ce Presentation中的主装置的鼠标检测活动是属于被动检测, 当用户移动鼠标到演讲者视图区域的时候,主装置执行系统工作原理中的(10), (11), (12),
(6), (7), (8), (9)步,用户可以看见模拟鼠标被绘制出来,而系统鼠标被主装置隐藏起 来,如图10所示,左边的显示为演讲者视图上的荧光笔鼠标70,右边的为观众视图的鼠标 700,由于观众视图比演讲者视图区域大,所以它的鼠标显示的就比演讲者视图上的鼠标大。
4、 如果用户移动鼠标到另外一个地方,会持续执行第3步。
5、 用户按ESC键退出荧光笔绘制状态的时候,主装置先根据系统工作原理中的步骤 (8)生成的数据八来恢复被模拟鼠标覆盖的区域,并且自动恢复系统鼠标为可见。
本发明提供的实例系统高效地满足了上述易用性方案的要求,但并非用来限定本发明, 本领域的技术人员,在不脱离本发明的精神和范围内,应当可做一些变动与修改,因此本发 明的保护范围当视后附的权利要求书所界定为准。对本领域的技术人员来说,在不偏离本发 明范围内,进行的各种改进和变化,均属于本发明的保护范围。
权利要求
1、一种在多区域内同时显示鼠标的装置,包括有计算机鼠标和应用软件,所述应用软件包括窗口管理系统作为运行支持图形用户界面的操作系统下的应用软件的基本控制模块,是对操作系统已经提供的窗口管理功能的包装和扩充,主要处理操作系统向应用软件发送的与窗口管理相关的消息;文档绘制系统用以将软件的逻辑数据,转化为人可以理解的图形和图像的模块,通过调用操作系统的图形绘制命令,将应用软件数据转化为文字图像、各种图形或表格,应用软件中的其他模块通过调用文档绘制系统中的服务将自己的数据转化为软件使用者容易理解的图像显示在应用软件的窗口中;其特征在于,所述在多区域内同时显示鼠标的装置还包括有模拟鼠标系统,所述模拟鼠标系统包括有主装置用以管理应用软件对鼠标模拟的请求,并且负责管理各个视图鼠标模拟子装置的创建、销毁和它们之间的协同运作;视图鼠标模拟子装置所述视图鼠标模拟子装置用以将应用软件的鼠标模拟任务划分为一个个具体的在应用软件的各个视图上面进行的鼠标模拟子任务,每个需要模拟的视图都对应一个视图鼠标模拟子装置;所述主装置是视图鼠标模拟子装置和应用软件其他模块之间交换数据的桥梁,同时负责检测当前的系统鼠标的状态。
2、 根据权利要求l所述的一种在多区域内同时显示鼠标的装置,其特征在于,所述视图 鼠标模拟子装置还包括有鼠标计算装置用以收集视图鼠标模拟子装置所对应的视图信息和原始鼠标位置信息, 计算出模拟的鼠标的位置、大小、形状和其他参数;鼠标绘制装置用以根据鼠标计算装置的结果,调用文档绘制系统服务,将模拟的鼠标 绘制出来。
3、 一种在多区域内同时显示鼠标的方法,其特征在于,应用软件启动时,同时启动窗口 管理系统,打开文档,并启动文档绘制系统;用户给出指令,应用程序判断是否需要进行鼠标模拟;当应用程序判断需要启动鼠标模拟主装置时,启动主装置,并根据需要将数据传递到主 装置;主装置收到数据后,保存该数据,并且根据数据对每一个需要模拟鼠标的视图创建一个 或多个单视图鼠标模拟子装置;所述视图鼠标模拟子装置将应用软件的鼠标模拟任务划分为一个个具体的在应用软件的 各个视图上面进行的鼠标模拟子任务,每个需要模拟的视图都对应一个视图鼠标模拟子装置;鼠标计算装置收集视图鼠标模拟子装置所对应的视图信息和原始鼠标位置信息,计算出 将要模拟的鼠标的位置、大小、形状和其他参数;鼠标绘制装置根据鼠标计算装置的结果,调用文档绘制系统服务,将模拟的鼠标绘制出来;当用户给出指令,应用程序判断不需要进行鼠标模拟时,应用程序销毁主装置; 工作结束。
4、根据权利要求3所述的一种在多区域内同时显示鼠标的方法,其特征在于,主装置执 行鼠标模拟逻辑的工作步骤为 步骤一主装置逻辑开始;步骤二根据需要创建视图鼠标模拟子装置; 步骤三初始化视图鼠标模拟子装置;步骤四计算当前系统鼠标是否处于某个视图区域内,如是,进入步骤五,如否,进入 步骤七;步骤五隐藏系统鼠标; 步骤六绘制出模拟鼠标; 歩骤七主装置动态检测逻辑。
5、 根据权利要求4所述的一种在多区域内同时显示鼠标的方法,其特征在于,初始化视 图鼠标模拟子装置的工作步骤为步骤一初始化视图鼠标模拟子装置开始; 步骤二创建鼠标计算子装置初始化; 步骤三创建鼠标绘制装置;歩骤四计算鼠标与视图相对位置传递给主装置; 歩骤五初始化结束。
6、 根据权利要求4所述的一种在多区域内同时显示鼠标的方法,其特征在于,主装置动 态检测逻辑的工作步骤为歩骤一主装置动态检测逻辑开始;步骤二检测鼠标移动和视图改变事件,如发生鼠标移动,进入步骤四,如发生视图縮放,进入歩骤三;步骤三通知视图鼠标模拟子装置改变视图大小,进入步骤六;步骤四通知视图鼠标模拟子装置鼠标相对位置改变信息;步骤五计算当前系统鼠标是否处于某个视图区域内,如是,进入步骤六;如否,进入 歩骤九;歩骤六擦除模拟的鼠标,进入歩骤七; 步骤七隐藏系统鼠标; 步骤八绘制出模拟鼠标,进入步骤一; 步骤九擦除模拟的鼠标,进入歩骤一。
7、 根据权利要求4所述的一种在多区域内同时显示鼠标的方法,其特征在于,绘制模拟 鼠标的工作步骤为歩骤一绘制模拟鼠标开始;步骤二计算各个视图下模拟鼠标的位置大小; 步骤三保存被模拟鼠标覆盖的视图区域; 步骤四根据鼠标的形状描述绘制模拟鼠标; 步骤五绘制模拟鼠标结束。
8、 根据权利要求3所述的一种在多区域内同时显示鼠标的方法,其特征在于,应用软件 启动时,同时启动窗口管理系统,打开文档,并启动文档绘制系统,根据文档中的数据在窗 口的视图上绘制文档的内容,如果有多个视图,就要分别绘制;所述一种在多区域内同时显 示鼠标的具体工作步骤为(1)应用软件检测到需要启动鼠标模拟主装置的命令时,启动主装置,并根据需要将数 据一传递到主装置;所述数据一包括如下参数、1.1、 文档窗口个数n、1.2、 n个窗口描述,每一项数据描述如下、1.2.1、 窗口标志符、1.2.2、 窗口相对屏幕的位置和大小、1.3、 需要模拟鼠标的视图的个数n、1.4、 n项视图信息描述,每一项数据描述如下、1.4.1、 视图所在的文档窗口的标志符、1.4.2、 视图标志符、1.4.3、 视图相对于文档窗口的位置和大小、1.4.4、 模拟鼠标在视图中的活动边界.1.4.5、 鼠标相对于视图的大小.1.4.6、 鼠标的形状描述,包含如下信息.1.4.6.1、 鼠标形状图片,图片格式是TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一种,优选方式为BMP格式;.1.4.6.2、 鼠标的路径描述.1.4.6.3、 鼠标的颜色.1.4.7、 鼠标的热点相对于鼠标的形状的位置 1.5、系统鼠标当前相对于屏幕的位置(2) 主装置收到数据一后,保存该数据,并且根据数据一对每一个需要模拟鼠标的视图 创建一个单视图鼠标模拟子装置,并且根据数据一将数据二传递到单视图鼠标模拟子装置;所述数据二包括如下参数.2.1、 窗口相对屏幕的位置和大小 -.2.2、 视图相对于文档窗口的位置和大小.2.3、 模拟鼠标在视图中的活动.边界.2.4、 鼠标相对于视图的大小.2.5、 鼠标的热点相对于鼠标的形状的位置.2.6、 系统鼠标当前相对于屏幕的位置(3) 单视图鼠标模拟子装置收到数据二后,保存数据二,并且创建鼠标计算装置和鼠标 绘制装置,并根据数据二,将数据三传给鼠标计算装置,将数据四传递给鼠标绘制装置,鼠 标绘制装置保存该信息;所述数据三包括如下参数.3.1、 窗口相对屏幕的位置和大小.3.2、 视图相对于文档窗口的位置和大小.3.3、 模拟鼠标在视图中的活动边界.3.4、 系统鼠标当甜相对于屏幕的位置 所述数据四包括如下参数.4.1、 鼠标相对于视图的大小.4.2、 鼠标的形状描述,包含如下信息.4.2.1、 鼠标形状图片,图片格式是TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一种,优选方式为BMP格式;.4.2.2、 鼠标的路径描述、4.2.3、鼠标的颜色 4.3、模拟鼠标的热点相对于模拟鼠标的形状的位置、(4) 鼠标计算装置收到数据三后计算系统鼠标的位置是否正好处于对应的模拟鼠标的活 动边界,并且将此信息传给单视图鼠标模拟子装置,单视图鼠标模拟子装置保存这一信息;、(5) 主装置创建完所有需要创建模拟鼠标的视图后,建立起子装置和视图的一一对应关 系,对应关系的数据描述如数据五所示;然后检查所有的子装置中的数据项,如果系统鼠标 恰好处于某一个视图中的模拟鼠标活动边界之内,该视图我们叫做焦点视图,进入步骤(6), 否则系统初始化完毕进入步骤(10);所述数据五包括如下参数、5.1、 文档窗口标志符、5.2、 视图标志符、5.3、 视图鼠标模拟子装置标志符(6) 主装置将当前的系统鼠标的位置传递给焦点视图的视图鼠标模拟子装置,并要求该 视图鼠标模拟子装置计算出模拟鼠标相对于其活动边界比例位置,模拟鼠标相对于其活动边 界的比例为数据六,并将这一信息传递给主装置;所述数据六包括如下参数、6.1、模拟鼠标相对于其活动边界的比例(7) 主装置将数据六传递给所有的视图鼠标模拟子装置,视图鼠标模拟子装置将数据六 中的鼠标位置信息传递到鼠标位置计算子装置,计算出模拟鼠标的相对于视图的位置和大小, 并且将这一信息传递给主装置,该信息为数据七;所述数据七包括如下参数、7.1、 模拟鼠标的位置,相对于视图区域、7.2、 模拟鼠标的大小(8) 主装置将数据七传递到视图绘制系统,并要求视图绘制系统将数据七中对应的视图 中的区域保存在数据八中,并传回主装置,数据八记录了当前视图模拟鼠标区域所覆盖的文 档视图显示的图像内容,如果模拟鼠标移动位置,数据八可以用来恢复模拟鼠标刚才所占的 文档视图区域,并将数据八传递到对应的视图鼠标模拟子装置中,视图鼠标模拟子装置将这 信息保存起来;所述数据八包括如下参数、8.1、 图像在视图上的位置、8.2、 图像在视图上的大小8.3、图像内容,视图在该区域的精确描述(9) 主装置要求所有的视图鼠标模拟子装置生成对应视图的模拟鼠标的图像信息,即数 据九,并将该数据传递到视图绘制系统中,视图绘制系统根据数据九,在对应的地方绘制出 模拟鼠标的图像,用户能够看见模拟鼠标;主装置隐藏系统鼠标;所述数据九包括如下参数
9.1、 图像在视图上的位置9.2、 图像在视图上的大小9.3、 图像内容,可以是图片格式TIF、 WMF、 JPG、 BMP、 EMF、 PNG、 GIF、 PCX、 TGA中的一种,优选方式为BMP格式;或者是自定义的绘制命令序列;(10) 主装置不停检测视图是否被改变,如果某个视图改变,主装置从对应的视图鼠标 模拟子装置中取出数据八,根据数据八中的模拟鼠标的位置,要求视图绘制系统重新生成数 据八并传回主装置,并将数据八传入视图模拟子装置,保存起来;(11) 如果主装置监测到了系统鼠标的移动,主装置要求所有的视图鼠标模拟子装置将 它保存的数据八传递给自己,并且将该数据传递到视图绘制系统,视图绘制系统根据数据八 恢复鼠标刚才占据的位置,如果视图鼠标模拟子装置在之前并没有保存数据八,就什么也不 做;(12) 主装置将新的系统鼠标位置传递给每一个视图鼠标模拟子装置,视图鼠标模拟子 装置收到该信息后计算系统鼠标的位置是否正好处于对应的模拟鼠标的活动边界之内,并且 将这一信息传递到主装置;如果系统鼠标恰好在某一个模拟鼠标的活动边界之内,则转(6) 重复这一过程,否则转到(10),重复(10)到(11)部分的过程;(13) 应用软件检测到不需要鼠标模拟的命令时,销毁主装置。9、 根据权利要求3所述的一种在多区域内同时显示鼠标的方法,其特征在于,主装置的 检测活动是主动的或者是被动的方式;主动检测就是主装置一直控制系统的执行流程,随时査询系统的状态,这里检测系统鼠 标的移动就是调用操作系统的API;被动检测就是指系统的控制只是局部受到主装置的控制,具体来说就是系统的流程还是 由应用软件本身来控制,主装置向应用软件注册它感兴趣的事件或消息,当对应的事件或消 息产生的时候,应用软件通知主装置,并将事件相关的数据传递给它,如果主装置认为该事 件需要自己处理,就执行它的控制过程,执行完毕后将控制返回,应用软件再检测事件,如 此循环。
10、 根据权利要求3所述的一种在多区域内同时显示鼠标的方法,其特征在于,对于焦点视图上的模拟鼠标处理方法为,直接使用系统鼠标而不进行模拟,此时焦点视图对应的视 图鼠标模拟子装置仅仅起到计算模拟鼠标位置比例的作用,不需要保存模拟鼠标当前在视图 上的图像信息。
全文摘要
本发明提供一种在多区域内同时显示鼠标的装置和方法,使得应用软件可以在需要的时候使用任意多个鼠标来指示用户的输入,本发明的鼠标模拟的解决方案,不仅可以用在播放软件的双屏鼠标模拟中,实际上它满足了任何需要在不同屏幕区域同时显示鼠标的需求。所述一种在多区域内同时显示鼠标的装置,包括有计算机鼠标和应用软件,所述应用软件包括窗口管理系统、文档绘制系统、主装置和视图鼠标模拟子装置,所述主装置是视图鼠标模拟子装置和应用软件其他模块之间交换数据的桥梁,同时负责检测当前的系统鼠标的状态。所述视图鼠标模拟子装置还包括有鼠标计算装置和鼠标绘制装置。
文档编号G06F9/455GK101295264SQ20071002767
公开日2008年10月29日 申请日期2007年4月24日 优先权日2007年4月24日
发明者鹏 刘 申请人:珠海金山软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1