我有一个 Windows Mobile 应用程序(用 C# 编写),只能在纵向模式下运行。 无论如何,是否可以通过编程方式阻止系统自动将我的应用程序旋转到横向模式,而无需更改 Windows Mobile 系统设置?
平台:Windows Mobile 6.1 Professional
最佳答案
这是一个糟糕、糟糕、糟糕的主意。该设备是一种通用设备,旨在运行多个应用程序。该平台不应该成为您的应用程序的奴隶。这就像说您有一个只能在 640x480 下运行的桌面应用程序,因此您应该能够将某人的 PC 锁定为该分辨率。
更好的解决方案是要么实际修复您的软件(喘息)以支持两种方向(并且您知道也有不同的分辨率以及方屏设备,对吧?),或者让您的应用程序至少流行当选择不支持的分辨率或方向时,会出现某种消息框来通知用户兼容性。
至于“如何”做到这一点 - 你不能。旋转由显示驱动程序处理,特别是通过调用 ExtEscape使用 DRVESC_SETSCREENROTATION。标准中GPEFlat driver随 PB 一起提供,这又调用 DynRotate 并继续调用 SetRotation(如果您真的想知道它是如何工作的,您可以查看 eval 版本中的公共(public)源代码)。
这样做的缺点是,要拦截该调用,您必须创建一个替换显示驱动程序,或者至少创建一些作为驱动程序插入的填充程序,然后依次调用现有的显示驱动程序。这些都不会在托管代码中发生。
关于windows-mobile - 防止 Pocket-PC 进入横向模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/768125/