研究了一天..终于搞定了..

在接收到WM_SETTINGCHANGE以后就判断wParam 是否等于0x3002, 如果是就执行如下旋转操作(必须得是postmessage来执行以下操作 ):

DEVMODE devMode;

SecureZeroMemory(&devMode, sizeof(DEVMODE));   
    devMode.dmSize   = sizeof(devMode);
    devMode.dmFields = DM_DISPLAYORIENTATION;

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

if (DMDO_0 == devMode.dmDisplayOrientation)
    {
        devMode.dmDisplayOrientation = DMDO_90;

ChangeDisplaySettingsEx(NULL, &devMode, NULL, CDS_RESET, NULL);

}

扩展信息:

切换屏幕旋转模式通过调用 ChangeDisplaySettingsEx 来实现,如: 
DEVMODE devmode = {0}; 
devmode.dmSize = sizeof(DEVMODE); 
devmode.dmDisplayOrientation = DMDO_90; //水平模式 
devmode.dmFields = DM_DISPLAYORIENTATION; 
ChangeDisplaySettingsEx(NULL, &devmode, NULL, 0, NULL);

DMDO_0 不旋转 
DMDO_90 旋转90度 
DMDO_180 旋转180度 
DMDO_270 旋转270度

取得当前模式的代码如下: 
DEVMODE devmode = {0}; 
devmode.dmSize = sizeof(DEVMODE); 
devmode.dmFields = DM_DISPLAYORIENTATION; 
ChangeDisplaySettingsEx(NULL, &devmode, 0, CDS_TEST, NULL); 
通过 devmode.dmDisplayOrientation 的值可以判断当前模式。

值得注意的是,这样切换模式并不是永久的,当设备重新起动后,就会还原为初始状态。 
如果你需要在保留切换的屏幕模式,可以通过设置注册表中HKEY_LOCAL_MACHINE/System/GDI/Rotation 下的两个键值实现 
Angle - DWORD (0, 90, 180, 270) 
LandscapeMode - DWORD (0,1)

mobile 实现横屏竖屏切换--禁止转屏相关推荐

  1. Android 模拟器横屏竖屏切换设置

    Android 模拟器横屏竖屏切换设置 时间:2012-07-04   来源:设计与开发   作者:Daniel   点击:5571 摘要:  Android 模拟器旋转,横屏.竖屏切换设置,andr ...

  2. vue手机端横屏竖屏切换

    1.建一个空白的vue文件,添加上如下代码 data() { this.$router.go(-1) return {} } 2.在需要横屏竖屏切换的页面中加入如下代码: beforeMount() ...

  3. Android横屏竖屏切换的问题

    转自:http://blog.sina.com.cn/s/blog_77c632410101790w.html 一.禁止横竖屏转换 Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为 ...

  4. [iOS]关于iOS中界面视图横屏/竖屏切换的问题总结

    最近在项目中有个这样的需求:整个APP中界面也竖屏为主,且不能自动横竖屏切换,个别页面可以根据手机的方向横竖屏切换;其实实现起来也并不难,关于视图是否能旋转主要还是有没有设置支持,在工程的Genera ...

  5. android 横屏finish 会变竖屏,[android] Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化...

    生命周期 Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情. 例举了 7 个常用的钩子:protected void onCreate(Bund ...

  6. android 手机屏幕横屏竖屏切换

    第一篇博客哦~ 本例子是实现简单的屏幕横竖切换的. 主要知识点: getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRA ...

  7. 小程序横屏竖屏切换监听

    一.在需要切换的页面.json中配置代码 注:需要提前开启手机的屏幕旋转 {"usingComponents": {"nav-bar": "/pack ...

  8. Android禁止横屏竖屏切换

    在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了. 在AndroidManifest.xml的ac ...

  9. android横屏竖屏设置

    Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 ...

最新文章

  1. 【怎样写代码】小技巧 -- 关于方法中修饰形参的关键词
  2. php获取svn文件,然后ftp上传服务器代码
  3. 升级WordPress时提示”另一更新正在进行”
  4. 深入浅出JMS(一)——JMS简单介绍
  5. Serverless Devs 2.0 开箱测评:Serverless 开发最佳实践
  6. php瀑布墙,phpwind Next增加“瀑布流”图墙展示模式
  7. MySQL入门 (六) : 字元集与资料库
  8. 【Flink】Flink Committing offsets to Kafka takes longer than the checkpoint interval
  9. access的papersize命令_巡检命令及查看参数
  10. springboot 2.x 使用定时任务执行多次问题
  11. C#高级编程9 第18章 部署
  12. 展示全面快速响应能力 华为全线解决方案亮相北京国际通信展
  13. 学生选课管理系统c语言程序报告,学生选课管理系统c语言程序
  14. 不是一个PDF文件或该文件已损坏
  15. matplotlib 配色之内置 colormap
  16. 大规模服务设计部署经验
  17. XLSReadWriteII 读取EXCEL数据 动态响应字段的列编号
  18. 使用k-means聚类anchors
  19. 2022电工(初级)上岗证题目及答案
  20. 在Ubuntu 18下安装SIMULIA Abaqus 2020

热门文章

  1. STM32---TIM
  2. 【聚类】五种主要聚类算法
  3. 2021济宁一中高考成绩查询,济宁高中学校排名2021最新排名,济宁高中排名前十
  4. openresty 动态黑白名单
  5. Android sdk 21~23 WebView加载报错
  6. iPhone 4韩国上市时间推迟令竞争对手获益
  7. Netty学习前置知识(一)
  8. PyTorch学习笔记(10)--搭建简单的神经网络以及Sequential的使用
  9. UAC2.0 Audio-class-specific request
  10. Burp Suite下载