一种基于win7实现屏幕自适应翻转的方法及装置
技术领域
本发明属于多屏显示技术领域,具体涉及一种基于win7实现屏幕自适应翻转的方法及装置。
背景技术
随着计算机技术与互联网通信技术的发展,多核CPU越来越普及,电脑性能不断提升,多个程序同时运行已经逐渐成为习惯,但随之而来的问题是,过多的窗口占用了大量的桌面空间,使得用户在进行多窗口操作时需要频繁的进行窗口切换,极大的降低了工作效率,影响了工作时间。
多屏显示技术因此应运而生,多屏显示应用广泛,可以用于处理多文件多视角的工作,可以让操作界面扩展到其他屏幕中。多屏显示还可以给游戏爱好者更直观的游戏感受,可以用于股票交易多屏幕看盘,用于商业广告,产品展示等。但现有多屏显示通常是在固定模式下进行,而实际在使用多屏显示时,为了便于查看内容,人们往往需要在主屏固定的情况下对副屏位置进行调整,如移动、翻转等,副屏位置的调整后,屏幕显示内容无法调整,即现有计算机多屏显示功能不足。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种基于win7实现屏幕自适应翻转的方法及装置,是非常有必要的。
发明内容
针对现有技术的上述现有计算机多屏显示功能不足的缺陷,本发明提供一种基于win7实现屏幕自适应翻转的方法及装置,以解决上述技术问题。
第一方面,本发明提供一种基于win7实现屏幕自适应翻转的方法,包括如下步骤:
S1.当副屏位置发生变化时,传感器模块产生屏幕变化信号通知单片机模块;
S2.单片机模块获取副屏位置变化,根据副屏与主屏的相对位置对当前屏幕方向进行判断,并将判断结果发送给翻转控制模块;
S3.翻转控制模块通过调用pywin32API函数进行副屏的屏幕翻转控制。
进一步地,步骤S1具体步骤如下:
S11.在副屏设置陀螺仪传感器,并通过陀螺仪传感器获取副屏位置状态;
S12.当副屏位置变化时,陀螺仪传感器根据副屏位置变化生成屏幕变化信号,并将屏幕变化信号发送给单片机模块。陀螺仪传感器能够感知副屏位置变化,并及时通知单片机模块进行处理。
进一步地,步骤S2具体步骤如下:
S21.单片机模块解析屏幕变化信号得到当前副屏与主屏相对位置;
S22.单片机模块根据副屏与主屏相对位置判断当前屏幕方向是否匹配;
若否,进入步骤S23;
若是,结束;
S23.单片机模块向翻转控制模块发送预设的屏幕图形模式修改方式以及屏幕的目标翻转角度。单片机模块解析出主副屏相对位置的变化,判断是否有屏幕翻转的需求,并在需要进行屏幕翻转时,提供翻转需要的参数给翻转控制模块。
进一步地,步骤S3具体步骤如下:
S31.翻转控制模块通过win32api.EnumDisplayDevices函数获取副屏的设备信息;
S32.翻转控制模块通过win32api.EnumDisplaySettings函数获取副屏的图形设置,并根据屏幕的目标翻转角度对副屏的图形设置进行修改;
S33.翻转控制模块通过win32api.ChangeDisplaySettingsEX函数,并按照预设的屏幕图形模式修改方式以及修改的副屏的图形设置,进行副屏的翻转。翻转控制模块通过一系列win7的API函数传递参数,进行屏幕翻转。
进一步地,步骤S32具体步骤如下:
S321.翻转控制模块将通过win32api.EnumDisplaySettings函数以及副屏的设备信息,获取副屏的图形设置数据结构;
S322.翻转控制模块根据目标翻转角度,修改副屏的图形设置数据结构中的屏幕显示方向;
S323.翻转控制模块根据目标翻转角度及当前副屏的显示方向,判断是否需要交换屏幕长度和宽度;
若是,进入步骤S324;
若否,进入步骤S33;
S324.翻转控制模块通过修改副屏的图形设置数据结构中的屏幕高度和屏幕宽度,进行屏幕长度和屏幕宽度的交换。副屏的设备信息作为一个参数传递到win32api.EnumDisplaySettings函数,从而得到副屏的图形设置数据结构,对这个数据结构进行修改,就是预设的副屏的屏幕翻转后的状态。
进一步地,步骤S33具体步骤如下:
S331.翻转控制模块将预设的屏幕图形模式修改方式输入win32api.ChangeDisplaySettingsEX函数;
S332.翻转控制模块将修改好的副屏的图形设置数据结构输入win32api.ChangeDisplaySettingsEX函数,实现副屏的翻转。屏幕图形模式修改方式以标志位的方式在单片机与翻转控制模块之间传递,并最终作为win32api.ChangeDisplaySettingsEX函数的一个参数输入,进行翻转控制。
第二方面,本发明提供一种基于win7实现屏幕自适应翻转的装置,包括:
副屏位置变化通知单元,用于当副屏位置发生变化时,通过传感器模块产生屏幕变化信号通知单片机模块;
翻转判断单元,用于通过单片机模块获取副屏位置变化,根据副屏与主屏的相对位置对当前屏幕方向进行判断,并将判断结果发送给翻转控制模块;
翻转动作单元,用于在翻转控制模块通过调用pywin32API函数进行副屏的屏幕翻转控制。
进一步地,副屏位置变化通知单元包括:
传感器设置子单元,用于在副屏设置陀螺仪传感器,并通过陀螺仪传感器获取副屏位置状态;
副屏位置变化检测单元,用于当副屏位置变化时,通过陀螺仪传感器根据副屏位置变化生成屏幕变化信号,并将屏幕变化信号发送给单片机模块。
进一步地,翻转判断单元包括:
相对位置解析子单元,用于通过单片机模块解析屏幕变化信号得到当前副屏与主屏相对位置;
屏幕方向匹配判断单元,用于通过单片机模块根据副屏与主屏相对位置判断当前屏幕方向是否匹配;
翻转通知子单元,用于当副屏与主屏相对位置与当前屏幕方向不匹配时,通过单片机模块向翻转控制模块发送预设的屏幕图形模式修改方式以及屏幕的目标翻转角度。
进一步地,翻转动作单元包括:
副屏设备信息获取子单元,用于在翻转控制模块通过win32api.EnumDisplayDevices函数获取副屏的设备信息;
图形设置修改子单元,用于在翻转控制模块通过win32api.EnumDisplaySettings函数获取副屏的图形设置,并根据屏幕的目标翻转角度对副屏的图形设置进行修改;
屏幕翻转子单元,用于在翻转控制模块通过win32api.ChangeDisplaySettingsEX函数,并按照预设的屏幕图形模式修改方式以及修改的副屏的图形设置,进行副屏的翻转。
本发明的有益效果在于,
本发明提供的基于win7实现屏幕自适应翻转的方法及装置,通过传感器模块与单片机模块配置实现当前屏幕方向及主屏与副屏相对位置关系的判断,再搭配作为win7下应用程序的翻转控制模块实现副屏位置改变时,屏幕的自适应翻转,操作简单方便,解决了现有多屏显示无法调整显示内容,显示功能不足的问题。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明基于win7实现屏幕自适应翻转的方法流程示意图一。
图2是本发明基于win7实现屏幕自适应翻转的方法流程示意图二。
图3为本发明基于win7实现屏幕自适应翻转的装置示意图。
图中,1-副屏位置变化通知单元;1.1-传感器设置子单元;1.2-副屏位置变化检测单元;2-翻转判断单元;2.1-相对位置解析子单元;2.2-屏幕方向匹配判断单元;2.3-翻转通知子单元;3-翻转动作单元;3.1-副屏设备信息获取子单元;3.2-图形设置修改子单元;3.3-屏幕翻转子单元。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例1:
如图1所示,本发明提供一种基于win7实现屏幕自适应翻转的方法,包括如下步骤:
S1.当副屏位置发生变化时,传感器模块产生屏幕变化信号通知单片机模块;
S2.单片机模块获取副屏位置变化,根据副屏与主屏的相对位置对当前屏幕方向进行判断,并将判断结果发送给翻转控制模块;
S3.翻转控制模块通过调用pywin32API函数进行副屏的屏幕翻转控制。
本发明提供的基于win7实现屏幕自适应翻转的方法,通过传感器模块与单片机模块配置实现当前屏幕方向及主屏与副屏相对位置关系的判断,再搭配作为win7下应用程序的翻转控制模块实现副屏位置改变时,屏幕的自适应翻转,操作简单方便,解决了现有多屏显示无法调整显示内容,显示功能不足的问题。
实施例2:
如图2所示,本发明提供一种基于win7实现屏幕自适应翻转的方法,包括如下步骤:
S1.当副屏位置发生变化时,传感器模块产生屏幕变化信号通知单片机模块;具体步骤如下:
S11.在副屏设置陀螺仪传感器,并通过陀螺仪传感器获取副屏位置状态;
S12.当副屏位置变化时,陀螺仪传感器根据副屏位置变化生成屏幕变化信号,并将屏幕变化信号发送给单片机模块;
S2.单片机模块获取副屏位置变化,根据副屏与主屏的相对位置对当前屏幕方向进行判断,并将判断结果发送给翻转控制模块;具体步骤如下:
S21.单片机模块解析屏幕变化信号得到当前副屏与主屏相对位置;
S22.单片机模块根据副屏与主屏相对位置判断当前屏幕方向是否匹配;
若否,进入步骤S23;
若是,结束;
S23.单片机模块向翻转控制模块发送预设的屏幕图形模式修改方式以及屏幕的目标翻转角度;屏幕图形模式修改方式以标志位flag的方式在单片机与翻转控制模块之间传递,例如标志位flag取0时,表示当前副屏屏幕的图形模式将动态地改变;
S3.翻转控制模块通过调用pywin32API函数进行副屏的屏幕翻转控制;具体步骤如下:
S31.翻转控制模块通过win32api.EnumDisplayDevices函数获取副屏的设备信息;
S32.翻转控制模块通过win32api.EnumDisplaySettings函数获取副屏的图形设置,并根据屏幕的目标翻转角度对副屏的图形设置进行修改;具体步骤如下:
S321.翻转控制模块将通过win32api.EnumDisplaySettings函数以及副屏的设备信息,获取副屏的图形设置数据结构;将副屏的设备信息作为参数输入win32api.EnumDisplaySettings函数,即可得到副屏的图形设置数据结构;
S322.翻转控制模块根据目标翻转角度,修改副屏的图形设置数据结构中的屏幕显示方向;对副屏的图形设置数据结构中表示屏幕显示方向的变量进行赋值;
S323.翻转控制模块根据目标翻转角度及当前副屏的显示方向,判断是否需要交换屏幕长度和宽度;
若是,进入步骤S324;
若否,进入步骤S33;
S324.翻转控制模块通过修改副屏的图形设置数据结构中的屏幕高度和屏幕宽度,进行屏幕长度和屏幕宽度的交换;对副屏的图形设置数据结构中表示屏幕宽度和高度的变量分别进行赋值,即将原来的屏幕高度赋值给屏幕宽度,将原来的屏幕宽度赋值给屏幕高度;
S33.翻转控制模块通过win32api.ChangeDisplaySettingsEX函数,并按照预设的屏幕图形模式修改方式以及修改的副屏的图形设置,进行副屏的翻转具体步骤如下:
S331.翻转控制模块将预设的屏幕图形模式修改方式输入win32api.ChangeDisplaySettingsEX函数;
S332.翻转控制模块将修改好的副屏的图形设置数据结构输入win32api.ChangeDisplaySettingsEX函数,实现副屏的翻转。
实施例3:
如图3所示,本发明提供一种基于win7实现屏幕自适应翻转的装置,包括:
副屏位置变化通知单元1,用于当副屏位置发生变化时,通过传感器模块产生屏幕变化信号通知单片机模块;副屏位置变化通知单元1包括:
传感器设置子单元1.1,用于在副屏设置陀螺仪传感器,并通过陀螺仪传感器获取副屏位置状态;
副屏位置变化检测单元1.2,用于当副屏位置变化时,通过陀螺仪传感器根据副屏位置变化生成屏幕变化信号,并将屏幕变化信号发送给单片机模块;
翻转判断单元2,用于通过单片机模块获取副屏位置变化,根据副屏与主屏的相对位置对当前屏幕方向进行判断,并将判断结果发送给翻转控制模块;翻转判断单元2包括:
相对位置解析子单元2.1,用于通过单片机模块解析屏幕变化信号得到当前副屏与主屏相对位置;
屏幕方向匹配判断单元2.2,用于通过单片机模块根据副屏与主屏相对位置判断当前屏幕方向是否匹配;
翻转通知子单元2.3,用于当副屏与主屏相对位置与当前屏幕方向不匹配时,通过单片机模块向翻转控制模块发送预设的屏幕图形模式修改方式以及屏幕的目标翻转角度;
翻转动作单元3,用于在翻转控制模块通过调用pywin32API函数进行副屏的屏幕翻转控制;翻转动作单元3包括:
副屏设备信息获取子单元3.1,用于在翻转控制模块通过win32api.EnumDisplayDevices函数获取副屏的设备信息;
图形设置修改子单元3.2,用于在翻转控制模块通过win32api.EnumDisplaySettings函数获取副屏的图形设置,并根据屏幕的目标翻转角度对副屏的图形设置进行修改;
屏幕翻转子单元3.3,用于在翻转控制模块通过win32api.ChangeDisplaySettingsEX函数,并按照预设的屏幕图形模式修改方式以及修改的副屏的图形设置,进行副屏的翻转。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。