对程序窗口的客户区进行交互的方法与系统技术方案

技术编号:4325052 阅读:258 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及对程序窗口的客户区进行交互的方法和系统,所述方法包括以下步骤:接收鼠标在所述客户区内的按下按键的消息;判断所述鼠标是否发生移动,如果所述鼠标发生移动,就根据鼠标的移动方向移动所述程序窗口,并在接收到所述鼠标释放所述按键的消息时停止移动所述程序窗口;如果所述鼠标没有发生移动,就在接收到所述鼠标释放所述按键时触发点击逻辑。实施本发明专利技术,使得程序窗口的客户区既支持点击逻辑,又支持拖动逻辑。在一个优选方案中,还根据鼠标的移动距离、移动时间判断鼠标的移动是否为用户有意触发,若是用户有意触发,就执行拖动逻辑;若不是用户有意触发的,就执行点击逻辑。从而起到一种防滑、防抖的效果。

【技术实现步骤摘要】

本专利技术涉及计算机交互领域,尤其涉及通过鼠标对程序窗口的客户区进 行交互的方法和系统。
技术介绍
在GUI (图形化用户接口 )的操作系统中,通过鼠标对应用程序的窗口 进行点击和拖动是最常见的交互形式。业内人士应当知晓,可用于交互的鼠标,既包括传统的初4成式滚^^鼠标、光电式鼠标,也包括各种新兴的鼠标替 代品,例如常用于笔记本的带按键的触摸板(touch pad )、带按4建的轨迹球(trace ball)、键盘鼠标(MouseKey)、触摸屏(touchscreen)等。操作时,鼠标的按键(例如左键)按下时会产生按下按键的消息(press 消息),该按键弹起时会产生释放按键的消息(impress消息),鼠标移动时会 产生移动消息(movdng消息)。通常,软件收到按下按键的消息或者释放按 键的消息时执行点击逻辑。在鼠标按下左键并同时移动时执行拖动逻辑。应用程序的窗口包括非客户区和客户区,其中,应用程序的标题栏以及 窗口的边框属于非客户区,其他区域属于客户区。操作系统对非客户区的点 击逻辑、拖动逻辑进行了预定义,例如,鼠标拖动标题栏就移动程序的窗口, 鼠标拖动边框就改变程序的窗口的大小。但是,操作系统没有对客户区的点 击逻辑、拖动逻辑进行预定义。也就是说,如何处理客户区内的点击和拖动 是由客户定义的。现有的应用程序中,有的应用程序只能处理客户区内的点击事件,不能 处理支持客户区内的拖动事件,例如,例如,Windows系统的暴风影音播放 器、Linux系统的Mplayer播放在客户区内发生按下事件时暂停播放,并且不再响应随后的鼠标拖动事件。相反,有的应用程序只能处理客户区内的拖动 事件,不支持点击事件,这是因为鼠标左键按下是开始拖动逻辑的触发条件、 而鼠标左键弹起是结束拖动逻辑的触发条件,因此,客户区内点击逻辑、拖 动逻辑不能共生。
技术实现思路
因此,亟需一种既支持客户区内的点击逻辑、又支持客户区内的拖动逻 辑的对程序窗口的客户区进行交互的方法。此外,还提供了一种对程序窗口的客户区进行交互的系统。其中,对程序窗口的客户区进行交互的方法包括以下步骤接收鼠标在 所述客户区内的按下按键的消息;判断所述鼠标是否发生移动,如果所述鼠 标发生移动,就根据鼠标的移动方向移动所述程序窗口,并在接收到所述鼠 标释放所述按^:的消息时停止移动所述程序窗口 ;如果所述鼠标没有发生移 动,就在接收到所述鼠标释放所述按键时触发点击逻辑。相应地,对程序窗口的客户区进行交互的系统包括消息接收模块、判断 模块、点击处理模块以及拖动处理模块,所述判断模块连接到所述消息接收 模块、所述点击处理模块和所述拖动处理模块,其中所述消息接收模块用 于接收鼠标在所述程序窗口的客户区内的按下按键的消息和释放按键的消 息;所述判断模块在所述消息接收模块接收到所述按下按键的消息之后,判 断所述鼠标是否发生移动,如果发生了移动,就向所述拖动处理^f莫块发送拖 动指令;否则,就在所述消息接收模块接收到释放所述按键的消息时向所述点击处理模块发送点击指令;所述拖动处理模块用于在接到所述拖动指令后 执行拖动逻辑,所述点击处理模块用于在接收到所述点击指令是执行点击逻辑。进一步地,考虑到鼠标受外界因素而扰动或抖动,该交互方法和交互系统还应当能够根据鼠标的移动情况判断该鼠标是点击还是拖动。在一个优选方案中,还根据所述鼠标的按下按键的消息和移动消息计算 所述鼠标的移动距离和移动时间,若所述移动距离大于预设距离或者所述移 动时间大于预设时间,就判定为发生拖动;否则,就判定为不发生拖动。该 优选方案中,移动距离大于预设距离或者移动时间大于预设时间时,才判定 为拖动,其他情况判定为点击,也就是说,鼠标按下按键后因为意外扰动或 者抖动依然识别为点击,避免了将扰动或抖动判定为拖动,从而起到一种防 抖的效果。与现有的客户区内的交互方法相比,没有在鼠标按下按键时执行点击逻辑,而是在鼠标按下按键时先判断是否发生拖动,如果是,就执行拖动逻辑; 如果不是拖动,就在鼠标释放时执行点击逻辑,是客户区既支持点击逻辑、 又支持拖动逻辑。此外,在优选的方案中,根据移动时间、移动距离判断是否发生拖动, 有效地防止了将抖动或扰动判定为拖动,从而起到一种防抖的效果。附图说明图i是本专利技术一个实施例中对程序窗口的客户区进行交互的方法流程图; 图2是本专利技术另一个实施例中对程序窗口的客户区进行交互的方法流程图3是本专利技术的一个实施例中对程序窗口的客户区进行交互的系统架构图。具体实施方式图1是本专利技术 一个实施例中对程序窗口的客户区进行交互的方法流程图。参考图1,开始步骤S100之后,在步骤S102中,接收鼠标在客户区内按下按 键的消息(press消息)。接着,在步骤S104中判断鼠标是否发生移动。如果 鼠标发生移动,流程就进入步骤S106执行拖动逻辑,根据鼠标的移动方向移 动程序窗口,并在接收到鼠标的释放按键的消息(impress)时停止移动程序 窗口,然后进入结束步骤SllO。相应地,步骤S104中,如果判定鼠标没有发 生移动,流程就进入步骤S108,就在接收到鼠标的释放按键消息时触发点击 逻辑,执行与点击对应的操作,然后进入结束步骤SllO。在上述流程中,在鼠标按下按键之后,首先判断鼠标是否发生移动,如 果发生移动,就执行拖动逻辑,否则,就在鼠标按键释放按键之时执行点击 逻辑,使得程序窗口的客户区既支持拖动逻辑,又支持点击逻辑。如上文所述,鼠标是一种泛指,既包括传统的机械式滚4仑鼠标、光电 式鼠标,也包括各种新兴的鼠标替代品,例如常用于笔记本的带按键的触摸 板(touchpad )、带按键的轨迹球(trace ball )、键盘鼠标(MouseKey)、触摸 屏(touch screen )、触摸屏鼠标指示器等。因为鼠标移动时会发出移动消息,所以,可以根据是否接收到移动消息 来判断鼠标是否发生移动。即,如果接收到移动消息,就判定为鼠标发生移 动;如果没有接收到鼠标的移动消息,就判定为鼠标没有发生移动。考虑到用户手抖、鼠标质量不稳定、鼠标在不平整的地方拖动、外力扰 动鼠标等各种扰动、抖动因素会导致鼠标发出用户不想要的移动消息,在接 收到鼠标的移动消息后,可以对该移动消息判断,以区分该移动消息是用户 有意触发的,还是用户无意触发的。在一个实施例中,根据鼠标的移动距离 来判断鼠标的移动消息是否为用户有意触发的,在另一个实施例中,根据鼠 标的移动时间来判断鼠标的移动消息是否为用户有意触发的,在另外一个实 施例中,结合移动距离、移动时间来综合判断鼠标的移动消息是否为用户有 意触发的。下面分别描述如何根据移动距离、移动时间来判断。如果是根据鼠标的移动距离判断,那么,在接收到鼠标的按下按键的消 息时,读取并记录其所包含的位置信息ptl,相应地,在接收到鼠标的移动消 息时,就读取其中所包含的位置信息pt,然后计算位置pt与位置ptl的距离, 如果经计算得到的距离大于预设的距离(预设的距离可以根据需要设定,例 如4个像素),就判定为鼠标的移动是用户有意触发的,即,判定鼠标发生了 移动,所以执行拖动逻辑。如果经计算得到的距离小于或者等于预设的距离, 就认为鼠标的移动不是用户有意触发的,判定为鼠标没有发生移动,从而在 鼠标释本文档来自技高网
...

【技术保护点】
一种对程序窗口的客户区进行交互的方法,包括以下步骤: 接收鼠标在所述客户区内的按下按键的消息; 判断所述鼠标是否发生移动,如果所述鼠标发生移动,就根据鼠标的移动方向移动所述程序窗口,并在接收到所述鼠标释放所述按键的消息时停止移动 所述程序窗口;如果所述鼠标没有发生移动,就在接收到所述鼠标释放所述按键时触发点击逻辑。

【技术特征摘要】
1、一种对程序窗口的客户区进行交互的方法,包括以下步骤接收鼠标在所述客户区内的按下按键的消息;判断所述鼠标是否发生移动,如果所述鼠标发生移动,就根据鼠标的移动方向移动所述程序窗口,并在接收到所述鼠标释放所述按键的消息时停止移动所述程序窗口;如果所述鼠标没有发生移动,就在接收到所述鼠标释放所述按键时触发点击逻辑。2、 根据权利要求1所述的对程序窗口的客户区进行交互的方法,其特征 在于,判断所述鼠标是否发生移动的步骤包括若接收到所述鼠标的移动消息,就根据所述移动消息、按下按键的消息 计算所述鼠标的移动距离,若所述移动距离大于预设距离,就判定为发生移动;若没有接收到所述鼠标的移动消息,就判定为不发生移动。3、 根据权利要求2所述的对程序窗口的客户区进行交互的方法,其特征 在于,若所述移动距离小于或者等于预设距离,就根据所述移动消息、按下 按键的消息计算所述鼠标的移动时间,若所述移动时间大于预设时间,就判 定为发生移动;若所述移动时间小于或等于预设时间,就判定为不发生移动。4、 根据权利要求1所述的对程序窗口的客户区进行交互的方法,其特征 在于,判断所述鼠标是否发生移动的步骤包括若接收到所述鼠标的移动消息,就根据所述移动消息、按下按键的消息 计算所述鼠标的移动时间,若所述移动时间大于预设时间,就判定为发生拖 动;若没有接收到所述鼠标的移动消息,就判定为不发生拖动。5、 根据权利要求4所述的对程序窗口的客户区进行交互的方法,其特征 在于,若所述移动时间小于或者等于预设时间,就根据所述移动消息、按下 按键的消息计算所述鼠标的移动距离,若所述移动距离大于预设距离,就判 定为发生拖动;若所述移动距离小于或等于预设距离,就判定为不发生拖动。6、 根据权利要求1至5中任意一项所述的对程序窗口的客户区...

【专利技术属性】
技术研发人员:马化腾王清明吴运声邓君
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

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

1