首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>其他>WinCE通过两种方法实现Screen Rotation
WinCE通过两种方法实现Screen Rotation
来源: 发布时间:2008-07-01 发布人: 浏览: 人次   字体: [ ]  
在WinCE中做Screen Rotation,首先确认显示设备的驱动是否支持Screen Rotation功能。在显示设备支持的前提下,可以通过以下两种方法做Screen Rotation:
  
1.       通过修改注册表做Rotation
默认情况下,屏幕都是正常显示的,也就是说翻转角度为0度。可以通过修改注册表来做屏幕翻转,通过修改”Angle”的值来完成,具体设置如下:
[HKEY_LOCAL_MACHINE\System\GDI\Rotation]
    "Angle"=dword:5A          ;翻转90度,罗嗦一句,5A就是90的十六进制      
可以设置为0度,90度,180度和270度。也就是0,5A,B4和10E,通过设置这些值可以达到屏幕翻转的目的。你可以在Build image的时候就做这件事情,只要在project.reg文件里面加入上面的设置,然后重新make image,这样新的image启动以后就会按照你的设定来显示。也可以在WinCE启动以后,编个读写注册表的小程序,来修改这个值,然后重新启动就可以了(系统要支持HIVE-Based Registry)。
 
2. 通过ChangeDisplaySettingEx(..)做Rotation
       应该说,该函数用来改变显示设置,具体可参见MSDN。我再来简单说一下:
       函数如下:
LONG ChangeDisplaySettingsEx(
         LPCTSTR lpszDeviceName,
         LPDEVMODE lpDevMode,
         HWND hwnd,
         DWORD dwflags,
         LPVOID lParam
);
 
              lpszDeviceName:没有被使用,设置为NULL。
              lpDevMode        指向一个DEVMODE结构指针。
              hwnd                 预留。必须设置为NULL。
              dwflags            
                                          0:目前Screen的图形模式可以动态改变
                                          CDS_RESET:即使请求的设置和当前设置一样,也去改变。
                                          CDS_TEST:请求的图形模式被设置,则系统进行测试。                
                                          CDS_VIDEOPARAMETERS:被设置,则lParam传入一个指向VIDEOPARAMETERS结构的指针。
              lParam            如果dwflags设置为CDS_VIDEOPARAMETERS,则传入一个指向VIDEOPARAMETERS结构的指针;否则设置为NULL。
  
       关于DEVMODE结构,还是挺复杂的,一般在CE里面不会都用,这里只介绍几个我用到的:
         dwSize       描述DEVMODE结构的大小,设置为sizeof(DEVMODE)。
dmFields    初始化标记位。在作Rotation的时候,会用到的是DM_DISPLAYQUERYORIENTATION和DM_DISPLAYORIENTATION。前一个用来查询目前的显示驱动是否支持Rotation,后一用来实现屏幕翻转。
     dmDisplayOrientation设置翻转的角度。具体如下:

DMDO_0
The screen is rotated by 0 degrees.
DMDO_90
The screen is rotated by 90 degrees counterclockwise.
DMDO_180
The screen is rotated by 180 degrees.
DMDO_270
The screen is rotated by 270 degrees counterclockwise.

        一般在WinCE下,调用该函数作Rotation的时候,我们会首先判断目前的设备是否支持Rotation,程序如下:
       memset (&DevMode, 0, sizeof (DevMode));
       DevMode.dmSize   = sizeof (DevMode);
       DevMode.dmFields = DM_DISPLAYQUERYORIENTATION;
 
       if (DISP_CHANGE_SUCCESSFUL == ChangeDisplaySettingsEx(NULL, &DevMode, NULL, CDS_TEST, NULL))
       {
              MessageBox((L”Support.”));
              CurrentAngle = DevMode.dmDisplayOrientation;
       }
       else
       {
              MessageBox((L"Not Support."));
       }
 
       如果设备支持Rotation,就可以进行Rotation操作,下面的程序将屏幕翻转为90度,程序如下:
       memset(&DevMode, 0, sizeof (DevMode));
       DevMode.dmSize = sizeof (DevMode);
       DevMode.dmFields = DM_DISPLAYORIENTATION;
       DevMode.dmDisplayOrientation = DMDO_90;
 
       if (DISP_CHANGE_SUCCESSFUL != ChangeDisplaySettingsEx(NULL, &DevMode, NULL, CDS_RESET, NULL))
       {
              MessageBox((L"Rotation Error."));
       }
else
{
              MessageBox((L”Rotation OK.”));
       }
 
       上面两种方法都可以实现Screen Rotation,第一种通过修改注册表的方法不能立刻实现Rotation,要等设备reboot以后才会生效。第二种方法不需要重新启动,函数调用成功后,屏幕就会被翻转,但是下次启动以后又会恢复默认值。

相 关 文 章   发布商链接
·如何实现wince创建桌面快捷方式
·实例详解WinCE中Display驱动开发
·重新对IIS进行注册的命令使用
·举例说下WinCE中Loadcepc工具的使用...
·浅谈WinCE中命令行工具CecImort.exe...
·安装WinCE6.0的开发环境全攻略
·WinCE5.0中PBcec.exe的使用说明
·图解WinCE6.0添加自定义的工程模板实...
·WinCE中Build.exe工具的使用及其参数...
·实例讲解PDA入门开发的过程,附代码
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·安装WinCE6.0的开发环境全攻...
·CE6和CE5在Platform Builder...
·WINCE自带的驱动程序被修改后
·图解Mobile5.0的环境配置和开
·WinCE分析Flash分区原则和块...
·WINE中文字体显示方块的解决...
·Wine环境下成功运行Bitcomet ...
·如何用Silverlight制作scroll...
·怎样开启WinCE中的File Serve...
·实例讲解ASP.NET抽象工厂模式
·.Net程序如何脱离.net框架也...
·如何在.NET打包时加入卸载功...
·浅谈asp.net服务器端控件与客
·silverlight是什么?有什么用?
·在WinCE5.0和WinCE6.0中编译...
热 门 文 章
·WINE中文字体显示方块的解决...
·实例讲解ASP.NET抽象工厂模式...
·在WinCE5.0和WinCE6.0中编译...
·WinCE中telnet,FTP及网络共享...
·实例详解WinCE中Display驱动...
·WinCE下,快速编译驱动及BSP...
·安装WinCE6.0的开发环境全攻...
·wince中BIB文件的详细介绍
·图解WinCE6.0添加自定义的工...
·WinCE BSP中打印信息的实现介...
·Wince开发之创建桌面快捷方式
·WinCE中RTC驱动开发介绍
·wince动态加载图片,数据类型...
·图解如何使用WinCE的BSP Clon...
·WinCE环境变量的添加,删除和...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .