mobile下怎么禁止横平竖屏切换?

czbever 2009-04-29 04:40:17
mobile下怎么禁止横平竖屏切换?
...全文
878 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
大招至胜 2009-10-23
  • 打赏
  • 举报
回复
我也遇到这个问题, 一直没找到好的方法,我用一个线程来判断是否发生了切屏,如果发生了就切换回来,这样还是有问题,有一个中间过程。 晕,不知道杂做,LZ解决这个问题了吗?
love_幸运儿 2009-08-24
  • 打赏
  • 举报
回复
mark
武哥博文 2009-08-17
  • 打赏
  • 举报
回复
学习了
czbever 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 zhaojiangang 的回复:]
很简单啊。
如果 高度>宽度 则是竖屏
反之,如果高度 <宽度 则是横屏

在 OnResize事件里,截获,可以判断是否发生了横竖屏切换操作, 可以 在此时阻止 。
[/Quote]

晕  都是忽悠的
算了 该结帖子了
zhaojiangang 2009-06-03
  • 打赏
  • 举报
回复
很简单啊。
如果 高度>宽度 则是竖屏
反之,如果高度<宽度 则是横屏

在 OnResize事件里,截获,可以判断是否发生了横竖屏切换操作, 可以 在此时阻止 。
christia 2009-05-30
  • 打赏
  • 举报
回复
这个可行
ppc_2008 2009-05-27
  • 打赏
  • 举报
回复
比较难
sophialmy82 2009-05-27
  • 打赏
  • 举报
回复
关注
biosli 2009-05-22
  • 打赏
  • 举报
回复
看看微软怎么做屏幕自适应的。

czbever 2009-05-16
  • 打赏
  • 举报
回复
23楼的是忽悠帖
hhygcy 2009-05-15
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 czbever 的回复:]
引用 23 楼 skyge 的回复:
下面是代码格式

C/C++ code
switch (message)
{
case WM_PAINT:
if(g_bIsWide == FALSE) //&& g_bChange == FALSE)
{
RECT lpRect;
GetWindowRect(hDlg,&lpRect);
GetUpdateRect(hDlg,&lpRect,TRUE);
DrawText(hdc,  L"请使用竖屏", &lpRect, NULL,DT_CENTER|DT_WORDBREAK);
}
break;
case WM_SIZE:

if((DRA::GetDisplayMode()) == -1)
{



晕  有你这样子的吗
[/Quote]

搞笑的:)
czbever 2009-05-15
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 skyge 的回复:]
下面是代码格式

C/C++ code
switch (message)
{
case WM_PAINT:
if(g_bIsWide == FALSE) //&& g_bChange == FALSE)
{
RECT lpRect;
GetWindowRect(hDlg,&lpRect);
GetUpdateRect(hDlg,&lpRect,TRUE);
DrawText(hdc, L"请使用竖屏", &lpRect, NULL,DT_CENTER|DT_WORDBREAK);
}
break;
case WM_SIZE:

if((DRA::GetDisplayMode()) == -1)
{

[/Quote]

晕 有你这样子的吗
skyge 2009-05-15
  • 打赏
  • 举报
回复
下面是代码格式

switch (message)
{
case WM_PAINT:
if(g_bIsWide == FALSE) //&& g_bChange == FALSE)
{
RECT lpRect;
GetWindowRect(hDlg,&lpRect);
GetUpdateRect(hDlg,&lpRect,TRUE);
DrawText(hdc, L"请使用竖屏", &lpRect, NULL,DT_CENTER|DT_WORDBREAK);
}
break;
case WM_SIZE:

if((DRA::GetDisplayMode()) == -1)
{
g_bIsWide = TRUE;
}else
{
g_bIsWide = FALSE;
}
break;
}
skyge 2009-05-15
  • 打赏
  • 举报
回复
可以设置一个全局变量g_bIsWide。
在WM_SIZE消息里判断当前屏幕状态是否为横屏。
如果事的话,在WM_PAINT消息里清屏,并提示“请使用竖屏”信息。
switch (message)
{
case WM_PAINT:
if(g_bIsWide == FALSE) //&& g_bChange == FALSE)
{
RECT lpRect;
GetWindowRect(hDlg,&lpRect);
GetUpdateRect(hDlg,&lpRect,TRUE);
DrawText(hdc, L"请使用竖屏", &lpRect, NULL,DT_CENTER|DT_WORDBREAK);
}
break;
case WM_SIZE:

if((DRA::GetDisplayMode()) == -1)
{
g_bIsWide = TRUE;
}else
{
g_bIsWide = FALSE;
}
break;
}
czbever 2009-05-08
  • 打赏
  • 举报
回复
哎 这问题没人能解决?
ch1oE 2009-05-02
  • 打赏
  • 举报
回复
这个是不是设备相关我倒忘记了.
不过一般支持重力感应(senor)的都会同时允许你去将重力感应打开或关闭.
同时打开重力感应的影响是全局的.也就是说,如果真的打开或关闭了,那么整个设备的重力感应都会受影响.(不要试图在APP开启的时候去打开,然后关闭后再关闭,毕竟APP是会切到后台的. -- 如果你说切到后台再改回来...OK,当我什么都没说过.)

另外就是,据我所知,至少Samsung是这么做的.而且也确实是写注册表的某个键值(这个算商业机密么?sry~) -- 不过这个仅用于测试用.

还有就是我觉得我这样是在误导你...因为这个做法被客户否决的概率基本上是100%.我不应该给你任何往这条歪路上走的希望才是...
czbever 2009-05-02
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 cytlyy 的回复:]
你没见过HTC的界面吗,即使在settings中手动转动了屏幕,回到today也会自动还原回来的。
[/Quote]

那确实只能这样做了?如果我非要改成不能切换的呢?
cytlyy 2009-05-02
  • 打赏
  • 举报
回复
你没见过HTC的界面吗,即使在settings中手动转动了屏幕,回到today也会自动还原回来的。
ch1oE 2009-05-01
  • 打赏
  • 举报
回复
禁用一般是不能被用户接受的吧?(改注册表的键值是可以将config那边的转屏禁掉的。)

而且如果用户真的开启了转屏
那么你的APP是没办法阻止这个动作发生的。唯一APP能做的就是接收到对应消息,然后APP做反应。
如果UI不变,那就如14楼所说,自己做90度翻转,然后map鼠标。
如果UI改变,那就没什么好说的了~
czbever 2009-05-01
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ch1oE 的回复:]
禁用一般是不能被用户接受的吧?(改注册表的键值是可以将config那边的转屏禁掉的。)

而且如果用户真的开启了转屏
那么你的APP是没办法阻止这个动作发生的。唯一APP能做的就是接收到对应消息,然后APP做反应。
如果UI不变,那就如14楼所说,自己做90度翻转,然后map鼠标。
如果UI改变,那就没什么好说的了~
[/Quote]

可以改?怎么改?
加载更多回复(15)

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧