WinCE6.0下如何动态设置系统分辨率

简介: 由于WinCE的显示驱动是本地驱动,不能像流驱动一样动态加载。所以,一般情况下不能动态修改和调试。前两天曾介绍过一种在应用程序中针对相同分辨率但不同尺寸的LCD的调试方法。这里继续介绍WinCE6.0下动态设置系统分辨率的一种方法。

      由于WinCE的显示驱动是本地驱动,不能像流驱动一样动态加载。所以,一般情况下不能动态修改和调试。前两天曾介绍过一种在应用程序中针对相同分辨率但不同尺寸的LCD的调试方法。这里继续介绍WinCE6.0下动态设置系统分辨率的一种方法。我们可以通过系统提供的ChangeDisplaySettingsEx()函数实现动态修改系统的分辨率。

      设定系统分辨率的参考代码如下:

 1      DWORD dwWidth, dwHeight;
 2      DEVMODE dm;
 3 
 4      dwWidth  =  GetDlgItemInt(IDC_COMBO_WIDTH, NULL, FALSE);
 5      dwHeight  =  GetDlgItemInt(IDC_COMBO_HEIGHT, NULL, FALSE);
 6      memset(( char * ) & dm,  0 sizeof (DEVMODE));    
 7      dm.dmSize  =   sizeof (DEVMODE);
 8      dm.dmPelsWidth  =  dwWidth;
 9      dm.dmPelsHeight  =  dwHeight;
10      dm.dmFields  =  DM_PELSWIDTH  |  DM_PELSHEIGHT;
11 
12       if  (DISP_CHANGE_SUCCESSFUL  ==  ChangeDisplaySettingsEx(NULL,  & dm, NULL,  0 , NULL))
13      {
14          CenterWindow();
15      }

       通过这个函数,我们还可以实现屏幕的旋转,参考代码如下:

 1      DWORD dwAngle;
 2      DEVMODE dm;
 3 
 4      dwAngle  =  SendDlgItemMessage(IDC_COMBO_ANGLE, CB_GETCURSEL, NULL, NULL);
 5      memset(( char * ) & dm,  0 sizeof (DEVMODE));    
 6      dm.dmSize  =   sizeof (DEVMODE);
 7      dm.dmDisplayOrientation  =  DMDO_0  +  (dwAngle  <=  DMDO_180  ?  dwAngle :  4 );
 8      dm.dmFields  =  DM_DISPLAYORIENTATION;
 9 
10       if  (DISP_CHANGE_SUCCESSFUL  ==  ChangeDisplaySettingsEx(NULL,  & dm, NULL,  0 , NULL))
11      {
12          CenterWindow();
13      }

      动态修改系统分辨率和旋转屏幕的效果图如下。

          image

                    image

                             image

     测试平台原始分辨率是800*480,先后将分辨率改为640*480和480*272,并在480*272的分辨率下将屏幕旋转90°。

目录
相关文章
|
编解码 Windows
UE-windows包蓝图分辨率设置
windows包蓝图分辨率设置
|
编解码 图形学
|
编解码 API 图形学
|
编解码 Android开发
Android平台GB28181设备接入模块分辨率发生变化怎么办?
我们在做Android平台gb28181设备接入模块的时候,遇到这样的情况,比如横竖屏分辨率不锁定,采集摄像头的时候,可以实现,横屏状态采集横屏,竖屏状态采集竖屏,简单来说,横屏状态比如采集的1280*720的,竖屏状态,采集的数据源成了720*1280。
|
编解码 编译器 C语言
QT应用编程: 界面自适应屏幕分辨率
QT应用编程: 界面自适应屏幕分辨率
827 0
|
编解码 Linux Windows
如何为virtualbox增加新的分辨率
     virtualbox是个相当NB的开源跨平台虚拟机软件,不过新创建的虚拟机只支持几种分辨率。例如,安装win8.1,只有如下图的几种分辨率。       不过我的显示器是5K哦,这么点分辨率,简直是搞笑。
1345 0
|
监控 数据处理 开发工具
如何让一套代码适配所有iOS设备尺寸?
随着移动互联网设备和技术的发展,各种移动设备屏幕尺寸层出不穷,折叠屏、分屏、悬浮窗等等,面对越来越多样的屏幕,如果为每种尺寸单独进行适配,不仅费时费力,还会增加端侧代码的开发与维护压力。如何让一套代码适配所有尺寸变化,增强App的通用能力?阿里巴巴文娱技术 氚雨 将分享优酷APP在iOS响应式布局技术上的实践和落地。
246 0
如何让一套代码适配所有iOS设备尺寸?
|
编解码
QT应用编程: 获取系统屏幕数量及分辨率
QT应用编程: 获取系统屏幕数量及分辨率
760 0
|
编解码
UWP 设备分辨率
原文:UWP 设备分辨率 之前看了下网上,分辨率都是用webview js拿或者全屏拿宽高,很有局限性。 研究一下。找到个完美的方法: public Size GetDeviceResolution() { Size resolution = Size.
882 0