Windows mobile屏幕旋转解决方案
来源:互联网 发布:floyd算法 编辑:程序博客网 时间:2024/06/05 11:04
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屏幕旋转解决方案
- Windows Mobile屏幕旋转解决方案
- 如何旋转Windows Mobile 2003的屏幕
- 如何 旋转Windows Mobile 2003的屏幕
- iOS开发屏幕旋转解决方案
- Windows mobile应用程序自适应屏幕大小
- Windows Mobile屏幕翻转效果掠影
- windows系统禁止屏幕旋转快捷键
- Windows mobile 菜单(Menu Bar) 更改解决方案
- Windows Mobile上实现图片任意角度旋转
- Windows Mobile上实现图片任意角度旋转
- 开发识别屏幕方向的Windows Mobile应用程序
- 开发识别屏幕方向的Windows Mobile应用程序
- 开发识别屏幕方向的Windows Mobile应用程序
- Windows Mobile 开发识别屏幕方向的应用程序
- windows mobile 禁止屏幕下方菜单栏的输入法等图标
- 旋转屏幕
- 屏幕旋转
- objective-c中文教程
- Sql2000和Sql2005共存安装详细过程
- web developer tips (82):Visual Studio 2005web应用项目迁移到Visual Studio 2008
- JDBC的批量处理语句
- 一年,清明雨上…
- Windows mobile屏幕旋转解决方案
- Cygwin & CVS
- strings和nm命令
- 秦九韶算法
- iPhone开发经典语录集锦
- ICMP协议之tracert实现
- shell基本语法
- jdbc事务处理
- VC中inc、lib、dll路径设置