社区
Windows客户端开发
帖子详情
Windows mobile系统如何禁止竖屏切换到横屏
zhaoshangshang
2010-05-12 02:50:02
大家好,小弟遇到一个问题,在Windows mobile系统上如何屏蔽切换横屏的操作。因为我的程序没有做两套UI资源,现在只有支持竖屏的UI资源,一旦用户切换到横屏,界面就会出现错乱,所以我想屏蔽系统切换横屏的操作,不知道各位有没有好的办法去做屏蔽,之前查了不少资料,有人说屏蔽要改注册表,我觉得应用程序做这个操作不太好。也有人说可以在切换横屏后再切回竖屏,但我测试发现有时会失败,无法保证百分百屏蔽,比较着急,请大家多多帮忙,不胜感激!
...全文
699
18
打赏
收藏
Windows mobile系统如何禁止竖屏切换到横屏
大家好,小弟遇到一个问题,在Windows mobile系统上如何屏蔽切换横屏的操作。因为我的程序没有做两套UI资源,现在只有支持竖屏的UI资源,一旦用户切换到横屏,界面就会出现错乱,所以我想屏蔽系统切换横屏的操作,不知道各位有没有好的办法去做屏蔽,之前查了不少资料,有人说屏蔽要改注册表,我觉得应用程序做这个操作不太好。也有人说可以在切换横屏后再切回竖屏,但我测试发现有时会失败,无法保证百分百屏蔽,比较着急,请大家多多帮忙,不胜感激!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
beyondma
2010-05-18
打赏
举报
回复
必须得有两套布局。这是至少的。
载舟之水
2010-05-18
打赏
举报
回复
对 你看 那个API的 Remarks里有明确的说明是检测SETTINGCHANGE_RESET
载舟之水
2010-05-18
打赏
举报
回复
你去看下HTC的马尼拉插件就是强制再转回来的。
zhaoshangshang
2010-05-18
打赏
举报
回复
明白了,那是不是可以这么认为,在目前的WM中,如果程序没有准备两套UI资源的话,想禁止横屏,是不是也只有这种重新绘制的方法可行,所谓的注册表回调能起作用吗
载舟之水
2010-05-18
打赏
举报
回复
不仅仅是重新绘制,如果这样还是很快的,微软的应用一般做了两套资源,实际上是重新载入资源,这才变得很慢。
zhaoshangshang
2010-05-18
打赏
举报
回复
试过了,结果是可以的,就是过程中界面的闪烁比较大,毕竟有一个重新绘制的过程,是会有这样的问题,对于应用层程序来说看来是无法屏蔽横屏切换操作的。
zhaoshangshang
2010-05-15
打赏
举报
回复
WM_SETTINGCHANGE里响应RESET,是不是使用ChangeDisplaySettingsEx让界面切换
载舟之水
2010-05-15
打赏
举报
回复
WM_SETTINGCHANGE里响应RESET才是标准方法哦。那个注册表也可以,但不是标准方法。
zhaoshangshang
2010-05-14
打赏
举报
回复
非常感谢roc196
这个注册表项的确反映了屏幕的切换,那这个注册表监测回调函数如何注册,能不能介绍一下,可以屏蔽系统对注册表项的修改吗
88csdn
2010-05-14
打赏
举报
回复
注册一个注册表监测回调函数,监测HKEY_LOCAL_MACHINE\System\GDI\Rotation\Angle应该是可以的~~~
jianhenjh
2010-05-13
打赏
举报
回复
等结果
zhaoshangshang
2010-05-13
打赏
举报
回复
是的,一般来说是做两套UI。但客户其实不要求在横屏下显示,我现在就是想在我的程序运行时禁止手机横屏,难倒这做不到吗,实在不行就修改注册表试试,但具体要改哪个我不清楚,有人遇到过这方面的问题吗,有什么好办法吗
世外涛缘
2010-05-13
打赏
举报
回复
通用的做法还是得做两套UI。
zhaoshangshang
2010-05-13
打赏
举报
回复
二楼的方法我试过了,我是在WM_SIZE消息响应函数OnSize中做响应,判断如果CY的大小等于原来CX的大小,则认为做了屏幕切换操作,之后做屏幕的切换操作,在模拟器上测试还是有效果的,就是有些闪屏,但到了带键盘的真机上,就没有效果了,感觉这种办法还不是特有效,不知是否还有其他办法,请大家指点一下
载舟之水
2010-05-13
打赏
举报
回复
一般来说要做两套,很多手机现在都有重力传感,可以自动横竖屏,你没法屏蔽。
zhaoshangshang
2010-05-12
打赏
举报
回复
哪个消息可以响应横竖屏切换,是在WM_SIZE中吗,横竖屏切换的消息标示是什么,非常感谢
zhaoshangshang
2010-05-12
打赏
举报
回复
非常感谢,我试一下,待会反馈结果
md16888
2010-05-12
打赏
举报
回复
你可以试试在创建主窗口的时候,先取得当前屏幕状态,如果当前状态和你预期的不一样,先记录当前屏幕状态,然后把他改过来,要记得在程序退出时,屏幕状态还原。可以参考以下代码:
**************************************************************************
// 取得屏幕方向
static DWORD GetScreenOrientation()
{
DEVMODE deviceMode;
memset(&deviceMode, 0, sizeof(deviceMode));
deviceMode.dmSize = sizeof(deviceMode);
deviceMode.dmFields = DM_DISPLAYORIENTATION;
// Query the DM_DISPLAYORIENTATION property
if (ChangeDisplaySettingsEx(NULL, &deviceMode,
NULL, CDS_TEST, NULL) == DISP_CHANGE_SUCCESSFUL)
return deviceMode.dmDisplayOrientation;
else
return DMDO_DEFAULT;
}
// 设置屏幕方向
static void SetScreenOrientation(DWORD dwOrientation)
{
DEVMODE deviceMode;
memset(&deviceMode, 0, sizeof(deviceMode));
deviceMode.dmSize = sizeof(deviceMode);
deviceMode.dmFields = DM_DISPLAYORIENTATION;
deviceMode.dmDisplayOrientation = dwOrientation;
// Set the DM_DISPLAYORIENTATION property to the
// specified orientation
ChangeDisplaySettingsEx(NULL, &deviceMode,
NULL, CDS_RESET, NULL);
}
Mobile
Web开发基础之四–处理手机设备的横
竖
屏
问题
为了应对移动设备
屏
幕的碎片化,我们在开发
Mobile
Web应用时,一个最佳实践就是采用流式布局,保证最大可能地利用有限的
屏
幕空间。...window.orientation :这个属性给出了当前设备的
屏
幕方向,0表示
竖
屏
,正负90表示横
Unity 之 代码
切换
横
竖
屏
Unity 之 代码
切换
横
竖
屏
及设置部分简介
php 横
屏
和
竖
屏
,面试问题,视频横
屏
与
竖
屏
的设计差异?我是这样回答的
编辑导读:视频
竖
屏
和横
屏
是一个很常见的交互操作,那你有想过这两种设计有什么区别吗?当面试时候被问到这个问题...正好我之前做过一个从
竖
屏
到横
屏
转型的短视频App项目,有一些设计思考,我把它分享出来,跟大家一...
vue3编写H5适配横
竖
屏
4、每个做好
屏
幕,横、
竖
屏
两套样式,监听横
屏
还是
竖
屏
的字段参数,展示出对应的横
屏
还是
竖
屏
class样式。1、监听浏览器
屏
幕变化,通过监听
屏
幕宽高,辨别出是横
屏
,还是
竖
屏
状态。在项目的起始根页面进行监听,我...
mobile
实现横
屏
竖
屏
切换
--
禁止
转
屏
在接收到WM_SETTINGCHANGE以后就判断wParam 是否等于0x3002, 如果是就执行如下旋转操作(必须得是postmessage来执行以下操作): DEVMODE devMode; SecureZeroMemory(&devMode, sizeof(DEVMODE)); devMode.dmSize
Windows客户端开发
7,656
社区成员
18,845
社区内容
发帖
与我相关
我的任务
Windows客户端开发
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
复制链接
扫一扫
分享
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章