Windows mobile屏幕旋转解决方案

在默认情况下,Windows mobile的CDialog类可以自动切换屏幕显示方式,在用户把手机屏幕旋转成横屏的时候,CDialog类也会自动旋转,从而使得原本程序的绘制操作变乱。

那么如何解决Windows mobile下屏幕旋转带来的界面显示问题,就成了亟待解决的问题。一般来讲,如果不准备为用户提供横屏体验的话,那么禁止屏幕旋转无疑是最好的解决方案,这篇文章里笔者试图就这个问题进行一些探讨。

我们知道,Windows mobile的本质是事件机制和消息驱动,那么屏幕旋转自然也会发送消息给系统内核,这样以来,读者如果想对Windows mobile屏幕旋转做处理的话,自然首要的任务就是捕获这个屏幕旋转的消息。

首先声明消息捕获接口,如下:

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)

ON_WM_SETTINGCHANGE()

END_MESSAGE_MAP()

那么接下来就是需要对这个捕获到的消息进行处理,如下:

void CMyDlg::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)

{

TRACE1("CMyDlg::OnSettingChange uFlags: %d/n", uFlags);

DEVMODE devmode = {0};

devmode.dmSize = sizeof(DEVMODE);

devmode.dmFields = DM_DISPLAYORIENTATION;

ChangeDisplaySettingsEx(NULL, &devmode, NULL, CDS_TEST, NULL);

if (DMDO_0 != devmode.dmDisplayOrientation)

{

devmode.dmSize = sizeof(DEVMODE);

devmode.dmFields = DM_DISPLAYORIENTATION;

devmode.dmDisplayOrientation = DMDO_0;

ChangeDisplaySettingsEx(NULL, &devmode, NULL, 0, NULL);

}

return;

}

笔者在这里是禁止屏幕进行旋转,如果用户旋转成横屏的话,这段代码会强制用户再回到竖屏状态,如果读者想提供用户横屏体验的话,也可以设置一个变量,从而获取到屏幕的状态,对屏幕的横屏和竖屏状态进行分别绘制。

Windows mobile屏幕旋转解决方案相关推荐

  1. windows禁用屏幕旋转_如何在Windows 10中禁用屏幕自动旋转

    windows禁用屏幕旋转 Windows 10 can automatically rotate your display if you have a convertible PC or table ...

  2. 2009年2月Windows Mobile Webcast预告

    活动主题:SQL Server Compact 性能调校--Level 300 主 讲:黎波 MSDN特邀讲师 活动时间:2月19日(星期四) 14:30-16:00 讲座内容:SQL Server ...

  3. windows mobile数据同步方案

    距离上篇博客似乎又过了一段日子了,这段日子应该算是挣扎着过来的,从寻找同步错误的过程到使用新的解决方案,总共花了近3个星期,我想自己有必要总结下这次的经历. 项目是使用C#+VS2008开发的,客户端 ...

  4. Windows Mobile四大猜想 能否取代Windows?

    Windows Mobile四大猜想 能否取代Windows? 原文出处: http://news.csdn.net/n/20070710/106264.html "在微软所有新兴业务中,W ...

  5. Windows mobile 客户解决方案成功案例

    客户名称 北京市市政管理委员会 客户简介 北京市市政管理委员会是负责本城市市政基础设施.公用事业.环境卫生和城市市容环境综合整治以及城市管理综合执法的市政府组成部门.目前拥有城市道 路桥梁管理处.市政 ...

  6. Windows Mobile 5.0 SDK R2 for Pocket PC 安装错误解决方案

    Windows Mobile 5.0 SDK R2 for Pocket PC安装错误解决方案 错误: Error: Installation failed for component Windows ...

  7. Android处理屏幕旋转时的解决方案

    Android的Activity在不明确的指定屏幕方向和configChanges,当用户进行屏幕旋转时,Activity就会重新启动,这个时候需要考虑的就是数据的保存与恢复,Android给出了一下 ...

  8. iOS屏幕旋转技术点及解决方案总结

    1.屏幕旋转相关枚举 关于屏幕旋转枚举一共有3种: UIInterfaceOrientation,    UIInterfaceOrientationMask,   UIDeviceOrientati ...

  9. Windows Mobile 5.0 中为开发人员提供的新功能(3)

    Windows Mobile 5.0 中为开发人员提供的新功能(3) Pocket Outlook 增强功能 Pocket Outlook 向用户和应用程序开发人员提供了易于使用的 PIM.将 Poc ...

最新文章

  1. 利用Python让你的命令行像坤坤一样会打篮球
  2. 【Java】LeetCode 225. 用队列实现栈
  3. 【企业管理】价值创造的来源
  4. Github标星66.6k+:常见数据结构与算法的Python实现
  5. CCNA-第九篇-OSPF下+VLAN开篇初介绍
  6. Fiddler使用过程中容易忽略的小技巧
  7. Python学习笔记14(socket编程)
  8. 控件多线程访问的问题
  9. hdu 2546 饭卡 01背包
  10. http权威指南(一)-Http概述
  11. 在线图片编辑器/在线视频剪辑器/在线批量加水印网站源码
  12. python处理excel文件视频教程_(python处理excel文件视频教程)python怎么读取excel文件...
  13. paypal如何退款
  14. 计算机证件照颜色,更换证件照底色只需10秒,关键还不要钱!这4种方法你一定要学...
  15. springboot集成shiro
  16. 赛尔号星球大战游戏攻略
  17. 12. Spring Boot统一日志框架
  18. JOJ 上的典型题目分类以及参考书目 (以及我的整理)
  19. Leetcode|MySQL|数据库刷题记录(601~627)
  20. Direct3D 12 尝鲜: 基本呈现

热门文章

  1. 《UNIX网络编程》第一步:编写自己的daytime客户端,并从daytime服务器获取时间
  2. 智慧路灯杆网关的备用网络方案
  3. 高德地图定位的简单实现
  4. 注册IMDB的API KEY
  5. 命令行如何远程连接MySQL数据库
  6. chrome 安装插件(无需翻墙)
  7. pom文件配置阿里云仓库 转
  8. 二进制安装Kubernetes(k8s) v1.25.0 IPv4/IPv6双栈
  9. java中介系统平台_基于JAVA的房屋中介管理系统的设计与实现.ppt
  10. 余光中《写给未来的你》