如何旋转wince的桌面

C++实现显示(监视)器复制显示 Windows实现多显示器的显示配置,热插拔监控 阅读详情

从Windows CE 4.0开始,DEVMODE 结构多了一个属性dmDisplayOrientation,你可以通过这个属性来取得或设置屏幕旋转模式,它对应的值如下。
DMDO_0 不旋转
DMDO_90 旋转90度
DMDO_180 旋转180度
DMDO_270 旋转270度

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

取得当前模式的代码如下:
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)


但是支持这些的前提是的你的显示器驱动程序必须支持可旋转的模式举个例子说吧有些显示器的驱动支持DirectX而有些支持旋转,看一下下面的图片吧你会更加理解这些!


gqlv - 2004 年 09 月 03 日 - 10:47 AM
标题:
是不是要修改驱动呀?我的是ep9315!
怎样知道显示器驱动程序支持可旋转?
taling - 2004 年 09 月 03 日 - 11:15 AM
标题:
有两个办法。
一个是改驱动,一个是用GAPI。
no.killer - 2004 年 09 月 03 日 - 11:34 AM
标题:
后面那么大的一个字还没有看清楚呀(rotation station),不过解决方法有很多taling的方法就是一个呀!
simba - 2004 年 12 月 31 日 - 04:17 PM
标题:
GAPI如何旋转Wince的屏幕?GXBeginDraw拿到的frame buffer的地址好像是固定死了的,GAPi提供了rotate的接口么?
joyfly - 2004 年 12 月 31 日 - 05:08 PM
标题:
参考SMDK2410:
WINCE420/PLATFORM/SMDK2410/DRIVERS/DISPLAY/S3C2410LCD
宏ROTATE里的代码

用GAPI,只是你的APPLICATION自己负责去旋转

在DISPLAY DRIVER里改动,则整个系统运行时的屏幕都会旋转过来

no.killer说的方式,是你的APPLICATION要求屏幕旋转,则驱动会自动帮你旋转,当然这需要DISPLAY DRIVER支持.
simba - 2005 年 01 月 02 日 - 01:15 AM
标题:
楼上的大侠你好,我现在是在PDA IPAQ5550上做游戏开发,程序刚运行起来是240*320,但进去后想变成landscape模式。这种情况的话,应该算是application要求旋转屏幕吧,那我的application怎么去做这个要求呢?GAPI根本就没有提供这样的数据结构和API。
我试着改过pda的注册表,重新启动后屏幕倒是旋转了,但最奇怪的是触摸驱动好像没有旋转过来,就是说只是屏幕转过来而已,触摸的时候,还是按240*320布局时候的反应。
姑且不管注册表,只用GAPI的话,通过什么接口来通知驱动去旋转屏幕呢?这款产品应该是支持的因为我就在上面玩过landscape的一款赛车游戏,游戏设定里还可以设置rignt hand or left hand,就是不知道他是怎么做的。
tdfff_2001 - 2005 年 01 月 03 日 - 01:05 PM
标题:
能不能给解释一下"landscape模式"? 我理解了很长时间也没有明白.
joyfly - 2005 年 01 月 04 日 - 09:31 AM
标题:
你的APPLICATION可以用no.killer说的那种方式去旋转比较方便.

如果你的APPLICATION是一个游戏,对显示要求很高的话,就用GAPI.GAPI只是提供给你一个FRAMEBUFFER的指针, 它的格式应该是 240*320 . 也就是说, 如果你要在横屏模式下的左上角(0,0)画个点的话, 那它在FRAMEBUFFER里的位置应该是 (240,0),你要自己去把这个点画在(240,0)的位置上.也就是说你要自己去算这种旋转后的位置关系.


至于landscape和portrait的理解,landscape就是风景画, portrait就是人物肖像; 你可以想象一下你照照片的时候, 照风景一般是用横的, 照人物的证件照片一般是用竖的. 所以landscape就是横屏, portrait就是竖屏
simba - 2005 年 01 月 04 日 - 09:52 PM
标题:
已经搞定^_^,原来framebuffer是一片连续的地址,gxbegindraw拿到的就是portrait下左上角(0,0),这个是固定死的。往哪里写直接按地址算加上即可
p = gxbegindraw;
pDst = p + y*240 + x;
OK.
yamazaki_dboy - 2005 年 01 月 13 日 - 03:59 PM
标题:
WinCE D_D,麻烦问你一下,为了实现屏幕旋转我修改了ce的显示驱动,就按照WINCE420/PLATFORM/SMDK2410/DRIVERS/DISPLAY/S3C2410LCD 修改的,可旋转90度时,显示结果就简单的把0度时的屏幕转90度,而没有做竖屏到横屏的相应转换。 是不是可以和你交流一下,谢谢,谢谢
yamazaki_dboy - 2005 年 01 月 13 日 - 04:20 PM
标题:
请教:麻烦问一下,如果驱动支持旋转了,怎样由应用让驱动旋转呢,谢谢!
joyfly - 2005 年 01 月 14 日 - 09:46 AM
标题:
把workspace -> Shell and User Interface -> User Interface -> Quater VGA Resources (Portrait Mode) 去掉.

应用程序的实现,按no.killer 说的那样做就可以了
yamazaki_dboy - 2005 年 01 月 14 日 - 10:46 AM
标题:
组件workspace -> Shell and User Interface -> Quater VGA Resources (Portrait Mode),应该是应用层的吧(我在定制pda镜像的时候没有加它),
我现在的情况是:屏幕是旋转了,可就是单纯的转了90度,而没有竖到横的转换!怎么说呢,麻烦你吧qq或msn发给我吧,!谢谢,占你一些时间,谢谢!
yamazaki_dboy - 2005 年 01 月 14 日 - 10:58 AM
标题:
呵呵,在问一下,changedisplaysettings实现屏幕的旋转是不是要和显示驱动通信,在实现旋转时,这个函数肯定要调用显示驱动里的某一部分代码吗?谢谢!
joyfly - 2005 年 01 月 14 日 - 11:22 AM
标题:
那你指的"竖到横的转换"是指什么?

是需要显示驱动的支持,所以要参考S3C2410LCD 去加入这些支持.

SORRY,我现在不方便和你即时通讯.
yamazaki_dboy - 2005 年 01 月 14 日 - 11:39 AM
标题:
哦,没关系,就相当于,屏幕不转,把pda旋转90度,你想想,时不是就成了这样
________________________
| ______________ |
|| | |<---pda的实际屏幕
|| | |
|| | |
|| | |
||______________|________|
| |
| |<-----旋转后的显示区域!
|______________|

你看,确实旋转了,但是没有竖的到横的转换吧,也就是它的宽没有拉长,而高没有缩短的旋转了。
yamazaki_dboy - 2005 年 01 月 14 日 - 11:43 AM
标题:
啊,晕,我画的图被改变了。不知道你看明白没有?
也可以这样理解,你拿两本同样大小的书,把上面一本旋转90度,你看到的效果就时我说的!
joyfly - 2005 年 01 月 14 日 - 01:58 PM
标题:
附件里是我旋转前和旋转后的图象
joyfly - 2005 年 01 月 14 日 - 02:02 PM
标题:
白色的“WINDOWS CE”就是一张图片
屏幕旋转后,它的显示还是正常的。
yamazaki_dboy - 2005 年 01 月 14 日 - 02:19 PM
标题:
看到了,很羡慕啊!20号我就要交差了,可现在真的没办法了!
问一下:
1.你是不是按WINCE420/PLATFORM/SMDK2410/DRIVERS/DISPLAY/S3C2410LCD 改了显示驱动?
2.在操作系统起来后,你是怎样让你的屏幕从竖屏旋转为横屏的?
3.我现在是这样改的:第一。按照WINCE420/PLATFORM/SMDK2410/DRIVERS/DISPLAY/S3C2410LCD修改了显示驱动。也就是在DrvEscape成员函数里添加相应的动态旋转代码,并让我的显示类由gperotate继承而来(原来的是基于ddgpe的)
第二,在系统起来后,通过调用ExtEscape函数传递相应的参数给驱动的DrvEscape。我现在就是按照这种思路做的。
joyfly - 2005 年 01 月 14 日 - 02:27 PM
标题:
1.是的,差不多
2.在初始化函数里调用DynRotate(DMDO_90);
3,支持旋转,就要从gperotate继承, 就不支持DirectDraw了
yamazaki_dboy - 2005 年 01 月 14 日 - 02:37 PM
标题:
呵呵,可是不行啊!我把我旋转后的结果发到你的邮箱里吧,麻烦你有时间的时候帮我看看,也许我就要成功了,但进入死胡同了,麻烦指点一下。谢谢啊!
yamazaki_dboy - 2005 年 01 月 14 日 - 02:55 PM
标题:
你是系统起来时屏幕就转过来了?
你有没有在系统起来后让屏幕动态旋转?

从零搭建WINCE 6.0开发环境:基于VS2005与设备仿真器的完整指南 嵌入式操作系统是连接硬件与上层应用的关键软件层,它通过内核调度、驱动管理和资源抽象,为嵌入式设备提供稳定可靠的运行环境。其核心价值在于实现硬件资源的统一管理,并支持应用程序的跨平台移植。在工业控制、手持设备和物联网终端等场景中,嵌入式操作系统发挥着基石作用。本文聚焦于Windows Embedded CE 6.0这一经典系统,详细解析如何利用Visual Studio 2005和Platform Builder,从BSP选择、OS Design配置到系统镜像构建的全流程。内容涵盖设备仿真器的使用、组件依赖管 阅读详情

相关推荐

电脑屏幕旋转90度:如何通过编程解决?

屏幕的旋转是通过改变显示器的显示方向实现的。在本文中,我将以Python编程语言为例,演示如何通过调用操作系统的API来实现屏幕旋转。虽然可以通过操作系统的设置来调整屏幕方向,但是我们也可以通过编程来解决这个问题。在本文中,我将介绍如何使用编程语言来实现旋转屏幕的功能。如果你使用的是其他操作系统,请查阅该操作系统的文档以了解如何调用相应的API。如果你使用的是其他操作系统,请相应地调整API的调用方式和参数。首先,我们需要安装一个Python库,它可以帮助我们与操作系统进行交互。库来调用操作系统的API。

CodeVorter的博客 431

c#多显示器修改活动屏分辨率(ChangeDisplaySettingsEx)

通过 //获取活动屏 ScreenActiveScreen=Screen.FromPoint(newPoint(this.Location.X,this.Location.Y)); //初始化DEVMODE结构 //不知DEVMODE结构网上有很多 DEVMODEdevmode=newDEVMODE(); ...

qq_39441918的博客 3240

Windows自带api来实现屏幕扩展和分辨率设置

用Windows自带api来实现屏幕扩展和分辨率设置 ,先扩展全部显示器,然后再断开一部分无用显示器,最后只有Nvida的一张显卡能够输出一个显示器画面。

旋转屏幕

   调用Window API函数可以实现,须在VS2005或以后版本编译才行,VC6的头文件太早,这个特性它里面还没有   DEVMODE dm;   // initialize the DEVMODE structure   ZeroMemory(&dm, sizeof(dm));   dm.dmSize = sizeof(dm);   if (0 != EnumDisplaySettings

immcss的专栏 1083

英飞凌TLF35584 SBC实战:手把手教你配置WDG看门狗与ERR监控(基于AUTOSAR架构)

本文详细介绍了基于AUTOSAR架构的英飞凌TLF35584 SBC芯片WDG看门狗与ERR监控功能的配置方法。通过硬件平台搭建、寄存器级配置、AUTOSAR模块集成及诊断策略优化,帮助开发者快速掌握关键配置技巧,提升嵌入式系统的安全性和可靠性。

weixin_30256901的博客 476

静态时序分析(STA)_深入解析Data to Data Checks的零周期挑战

本文深入解析了静态时序分析(STA)中Data to Data Checks的核心概念与零周期挑战。重点探讨了当Setup要求值超过时钟周期时,工具如何调整发射沿,并导致Hold检查的发射与捕获沿“分裂”这一反直觉现象。文章通过案例详细解读了时序报告,并提供了通过调整约束或接受多周期保持两种策略来应对这一挑战,帮助工程师正确理解和处理此类复杂时序检查。

weixin_29204205的博客 350

【VC】ChangeDisplaySettingsEx 设置显示器屏幕分辨率

DISPLAY_DEVICE m_Device; DEVMODE m_DeviceMode;

shen_wei的专栏 1万+

GPU加速的容器化AI开发:AnolisOS/CentOS8中的NVIDIA驱动与CUDA最佳实践

本文详细介绍了在AnolisOS/CentOS8系统中配置NVIDIA驱动与CUDA的最佳实践,涵盖驱动安装、CUDA工具链配置、容器运行时设置及性能优化等关键步骤。特别针对容器化AI开发场景,提供了GPU透传和资源管理的实用方案,帮助开发者构建高效的GPU加速开发环境。

weixin_27791839的博客 341

旋转wince的桌面的函数

ChangeDisplaySettingsEx () 具体内容请看帮助。 This function changes the settings of the specified display device to the specified graphics mode. LONG ChangeDisplaySettingsEx( LPCTSTR lpszDeviceName, LP...

weixin_30808575的博客 110

PaddleOCR多进程GPU推理实战:200万图片高效处理方案

本文详细介绍了PaddleOCR多进程GPU推理在高效处理200万张图片OCR任务中的实战方案。通过优化GPU利用率、多进程并发和关键参数调优,实现了从单进程3000张/小时到8进程3万张/小时的性能飞跃,为大规模OCR处理提供了可靠解决方案。

prometheus9mon的博客 261

【光子 AI】AI Agent 知识体系深度研究报告

从理论基础到前沿应用:全面解析人工智能代理的核心架构、关键技术与发展趋势📅 2026 年 3 月 | 📊 深度研究报告 | 🔬 人工智能领域 | 📈 前沿技术分析**AI Agent(人工智能代理)**是一种能够感知环境、基于所获得的信息做出决策,并执行行动以影响该环境的软件系统。AI Agent 的设计旨在模仿或实现智能行为,它们可以在各种环境中操作,包括物理世界和虚拟空间。随着大语言模型(LLM)技术的突破性进展,AI Agent 正从实验室研究快速走向产业应用。根据 Gartner 发布的《2

AI天才研究院 176

linux桌面旋转了180度,在WinCE中实现屏幕旋转 Screen Rotation962914325

在WinCE中做Screen Rotation,首先确认显示设备的驱动是否支持Screen Rotation功能。在显示设备支持的前提下,可以通过以下两种方法做Screen Rotation:1.    通过修改注册表做Rotation默认情况下,屏幕都是正常显示的,也就是说翻转角度为0度。可以通过修改注册表来做屏幕翻转,通过修改”Angle”的值来完成,具体设置如下:[HKEY_LOCAL_MA...

weixin_39876002的博客 477

在MATLAB和Simulink中设计并仿真一个电动汽车整车动力学模型与控制系统

电动汽车(EV, Electric Vehicle)的动力学建模与控制仿真在车辆开发过程中起着至关重要的作用。通过Simulink进行整车动力学模型的构建和控制策略的验证,可以有效评估车辆性能、优化系统设计并降低开发成本。以下是如何在MATLAB和Simulink中设计并仿真一个电动汽车整车动力学模型与控制系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的电动汽车整车动力学模型与控制仿真。该系统能够模拟复杂的整车动力学行为,验证控制策略的有效性,并通过优化设计提高车辆的性能和可靠性。

xiaoheshang_123的博客 549

WINCE快捷方式机制与创建全流程详解

快捷方式是操作系统实现快速访问的重要机制,其核心原理是通过轻量级文件存储目标路径和启动参数。在嵌入式系统开发中,WINCE采用精简的LNK文本格式实现快捷方式,既保持功能完整性又适应资源受限环境。该技术广泛应用于工业控制、移动设备等场景,开发者需要掌握路径规范、图标索引等关键技术要点。通过手动创建、编程生成或Platform Builder集成等方式,可以高效管理WINCE设备的快捷方式布局。典型问题如路径转义、多语言适配等解决方案,对提升嵌入式系统开发效率具有重要实践价值。

weixin_30562507的博客 325

①电子产品拆解分析-暖手宝

电子产品拆解分析-暖手宝 ①按键三档调温暖手; ②长按进入氛围呼吸灯; ③安卓接口充电以及支持USB输出;

a6662580的博客 5294

【WRF数据准备】海温(SST)数据替换

【WRF数据准备】海温(SST)数据替换

WW、forever的博客 1118

终于找到一个类似wince 远程桌面控制android设备的软件——Androidscreencast

终于找到一个类似wince 远程桌面控制android设备的软件——Androidscreencast

hfdghjh的博客 1528

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WinCE Dialog 添加 Scrollbar

如何在WinCE上设置滚动条?   最近再搞winCE 下面对话框的滚动条,WinCE和普通的VC++的MFC滚动条还有所不同,再网上搜索了好久关于滚动条的例子,都没能轻易的移植到windows mobile的手机上。最后只好自己来理解滚动条的那些参数了。   下面是滚动条基本参数的介绍: 在初始化SCROLLINFO的时候,需要初始化一些参数,其中有nMin,nMax,和Page,...

大郭的涂鸦 223

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Wince下的GDI+

早就想写博客,但是人懒,所以就一直拖下来了。我是一个编程爱好者,注意是爱好者。换句话说也就是野路子没有受过正经的科班训练,所以很多地方都有可能笑掉大牙,有错误请不吝赐教。好了,言归正传,我第一个要说的话就是关于wince下的GDI+。说错了是WM下,从WM5.0以后,WM就开始支持GDI+了,这个可以从以下几方面证明:首先是.net可以引用GDI+,其次 是在wm5.0的ROM中找到g

zcmky05的专栏 4477

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WinCE 应用程序开发(基于EVC)

1、得到当前进程的HINSTANCEHMODULE hModule = ::GetModuleHandle(NULL);HINSTANCE hInst = hModule; 2、得到当前进程的绝对路径GetModuleFileName()函数,该函数的第一个参数如果为NULL,则返回最后一个发出WM_CREAT 消息的文件的绝对路径。 3、手工创建状态栏上应用程序的图标

尘埃落定 1174

WINCE5.0软件总汇(20100411更新)

软件由购把瘾网友搜集,本人整理并上传RaySource网盘 软件分为 办公类,影音类,系统工具类,网络类,桌面美化类,娱乐游戏类五个大类共90余款 多数软件附有简短说明,但恕不奉上图片 办公类 实用软件] w3000五笔输入 1、把文件解压缩传到机子~ 2、机子上运行WubiunReg 3、再运行WubReg 4、在右下角调出海鹰五笔输入面板即可 http://www.r

专栏 1万+
上一篇: 编写DirectShow Filters—编写transform filters
下一篇: CE下更改显示屏
随风而去飘飘飘
博客等级 码龄19年 620粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值