WinCE6.0下如何动态设置系统分辨率-阿里云开发者社区

开发者社区> helpful> 正文

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, 0sizeof(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, 0sizeof(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 10上帝模式快速查找所有的系统设置
Windows系统有所谓的「上帝模式」,说穿了其实也没什么,就是将所有的设定列出来,并且让你可以快速点选开启。这个功能在Windows 7、Windows 8时代都有,而来到了Windows 10的世界中,当然也有。
711 0
Android一些关于分辨率和布局的设置
1、Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢? drawable- hdpi、drawable- mdpi、drawable-ldpi的区别: (1)drawable-hdpi里面存放高分辨率的图片...
645 0
VMware Workstation下安装Ubuntu 64位系统
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/78209473 虽然笔者开始接触Linux有一段时间了,但是安装Ubuntu 64位系统并自己分区貌似也是才第一次。
947 0
12月1日云栖精选夜读:双11黑科技,阿里百万级服务器自动化运维系统StarAgent揭秘
还记得那些年我们半夜爬起来重启服务器的黑暗历史吗?双11期间,阿里巴巴百万量级主机管理能安全、稳定、高效,如丝般顺滑是如何做到的?阿里巴巴运维中台技术专家宋意,首次直播揭秘阿里IT运维的基础设施StarAgent,详细分析StarAgent是如何支持百万级规模服务器管控?如何像生活中的水电煤一样,做.
3161 0
嵌入式linux、QT、ARM、android研发学习交流,软考嵌入式系统设计师交流群,欢迎大家加入,群号95388240
 嵌入式linux、QT、ARM、android研发学习交流,软考嵌入式系统设计师交流群,欢迎大家加入,群号95388240
900 0
SAP Spartacus部署到SAP Commerce Cloud,不同的系统设置不同的OCC Base url
SAP Spartacus部署到SAP Commerce Cloud,不同的系统设置不同的OCC Base url
11 0
Android StatusBarUtil:设置Android系统下方虚拟键键盘透明度
 Android StatusBarUtil:设置Android系统下方虚拟键键盘透明度 Android StatusBarUtil是github上的一个开源项目,主页:https://github.com/laobie/StatusBarUtil StatusBarUtil可以修改Android底部下方系统的原生虚拟键键盘的透明度。
875 0
基于Alluxio系统的Spark DataFrame高效存储管理技术
在这篇文章中,我们将介绍如何使用Alluxio帮助Spark变得更高效,具体地,我们将展示如何使用Alluxio高效存储Spark DataFrame。
4747 0
+关注
helpful
长期从事嵌入式软件开发,包括&micro;C/OS 、WinCE、Linux和Android等。
216
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载