我正在为PocketPC开发一个应用程序。当应用程序启动时,调用自定义函数SetScreenOrientation(270)来旋转屏幕。当应用程序关闭时,调用函数SetScreenOrientation(0),恢复屏幕方向。

这样,如果用户最小化应用程序并且这是不可接受的,则不会恢复屏幕方向。

有没有人知道在哪里(在哪个事件处理程序中)应调用SetScreenOrientation(int角度)以在应用程序启动时设置屏幕方向,在最小化时恢复方向,在最大化时设置方向并在关闭时恢复方向?

实际上我不知道哪个事件处理程序处理Minimize和Maximize事件。

有帮助吗?

解决方案

正确的消息是 WM_SIZE ,但Daemin的答案指向错误的WM_SIZE帮助主题。检查wParam。小心,因为你的窗口可以最大化但隐藏。

其他提示

根据我的Windows CE经验,您应该处理 WM_SIZE WM_WINDOWPOSCHANGED 消息。如果您正在使用PocketPC,我建议您首先查看WM_WINDOWPOSCHANGED消息,因为我不确定WM_SIZE是否具有您需要的正确参数。

从WM_WINDOWPOSCHANGED消息的 WINDOWPOS 结构中查看flags成员,特别是SWP_SHOWWINDOW和SWP_HIDEWINDOW。


您需要查看的消息的特定版本因您使用的操作系统而异。 Pocket PC OS基于Windows CE 3.0(及更低版本)构建,而Windows Mobile现在基于Windows CE 5.0(甚至Windows Mobile 6)构建,但也构建于Windows CE 4上。(来源)

所以,只需查看MSDN中有关您正在编写的操作系统的相关部分。

我不知道在C ++世界中调用了什么,但在.NET Compact Framework中,当您最小化/最大化窗口时,将调用应用程序窗体的Resize事件,然后在事件代码中检查WindowState表格的属性,看它是否最小化或mazimized。

从你的应用程序中改变你的PDA的状态是有风险的(虽然有很多很好的理由去做),因为如果你的应用程序崩溃它将使PDA处于它所处的任何状态。我做了一个Windows Mobile中许多自助服务终端(全屏)应用程序,有效地执行此操作的一个技巧是隐藏WM标题栏(带有Windows开始按钮的顶行)以防止它闪烁以进行拆分每次打开新表格时都要秒。如果应用程序崩溃,Windows栏将保持不可见,直到您重置设备,这是不好的。至少在屏幕旋转时,用户可以手动恢复它。

这实际上取决于平台,但我会选择WM_WINDOWPOSCHANGED或OnShow。它不是wm_size ..并不总是在所有平台上抛出它。当你期望它们时,卡西欧不会抛出尺寸事件。 TDS和Symbol的确如此。

即使MSDN是一个很好的信息源,但请记住并非所有操作系统都是平等的。在PPC世界中,硬件提供商可以创建自己的操作系统,有时可以创建错过的东西,或者有意忽略内容。

我在这里有一个平台(名字保留,以保护......好吧),左右按钮..当你按下它们时,你希望能够捕捉到VK_LEFT,VK_RIGHT ..你们我错了。你真的得到';'要么 ':'。怎么样才能穿上裤子。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top