扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
适用范围:
Windows Mobile™ 2003 第二版软件
基于 Windows Mobile™ 的 Pocket PC
引言
Windows Mobile 2003 第二版软件为 Pocket PC 引入了新的功能,使基于 Windows Mobile 的设备可在横竖向两种模式下显示。在有些设备中,横向是默认的显示模式。此外,用户将能在使用中让屏幕在两种方向之间切换,而不必重新设置设备。
本文提供了有关该功能的后台信息、并介绍了开发适用于横竖向屏幕的移动应用程序的相关信息。此外,还向开发者提供了新的指南(包括一些建议和示例)供参考。
更改屏幕方向
通常,屏幕方向仅在用户使用“屏幕方向”控制面板,或按下某硬件按钮来旋转屏幕时才改变。
此外,应用程序也可通过 ChangeDisplaySettingsEx 函数以编程方式更改屏幕方向。该函数使用方法见 MSDN 中“Rotating the Content of the Screen”(旋转屏幕内容的方向)一文。例如,如果使用的应用程序只能在竖向模式下操作,则可通过编程改变屏幕方向。但是,如果屏幕方向的改变很突然,通过编程改变屏幕方向会让用户搞不清楚。应用程序应始终要求用户在旋转屏幕前确认显示模式。
为了在竖向模式下显示,将 dmDisplayOrientation 字段中的 DEVMODE 结构设置为 DMDO_0。对于右手横向模式,使用 DMDO_270。对于左手横向模式,使用 DMDO_90。
应用程序窗口如何识别屏幕方向
屏幕方向如果改变,或当“输入面板”出现时,应用程序的所有全屏顶层窗口都要适应新的取向。
注意:如果窗口的上、左、右坐标在工作区域边界之上或之外,该窗口被认为是全屏窗口。工作区域是标题栏下的整个屏幕区域。顶层窗口是无父窗口的窗口,即有一个 NULL 父窗口。
如果窗口大小改变,窗口将收到 WM_SIZE 通知。WM_SIZE 消息的 lParam 参数的低位字指定了客户端区域的新宽度,高位字指定了客户端区域的新高度。应用程序应识别窗口大小的改变,并相应地更新窗口布局。此外,也应重新确定所包含任何子窗口的布局。
如果应用程序没有全屏窗口,它收不到 WM_SIZE 通知。相反,它应在 wParam 参数设置为SETTINGCHANGE_RESET 时监听 WM_SETTINGCHANGE消息。
注意:如果应用程序有顶层窗口,或使用 SHHandleWMSettingChange、SHInitDialog 和 SHFullScreen 方法创建了窗口,它会同时收到 WM_SIZE 和 WM_SETTINGCHANGE 消息。但是,如果应用程序创建了子窗口,子窗口收不到 WM_SIZE 消息,即使子窗口是全屏窗口。
以下 WindowProc 模板的代码示例利用了 WM_SIZE 和 WM_SETTINGCHANGE 消息。
|
刷新屏幕内容
使用 Windows Mobile 2003 第二版软件时,Pocket PC 的最小显示区域是 240 个像素高和 240 个像素宽。编程人员应保证应用程序在最低配置下可用。常见问题是,菜单在竖向显示模式下可能符合要求,但在横向显示模式不符合要求。如果这样,需要在两个菜单之间重新排列菜单项。
刷新应用程序的屏幕内容时,可以使用下列 4 个编程选项:
◆调整内容适应窗口大小
◆更改内容
◆更改布局
◆设计所有布局通用的 240x240 正方形。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者