2009-10-08 137 views

回答

0

我不知道你在“后退按钮”的意思是什么,但所有的应用程序在Windows Mobile的默认行为是“X”按钮该应用程序将是标准Windows中的“关闭”按钮,实际上的行为与“最小化”相似,并将应用程序移至背景。

要真正“亲密”的应用程序,你通常会进入windows mobile的任务管理器,结束应用程序。

+0

在很多WM设备上,除了“确定”按钮外,还有一个“后退”按钮,用箭头表示。我认为正常的行为是立即将用户弹出到今日屏幕。我认为这是他正在谈论的按钮。我不知道如何改变或掩盖按钮的行为,因为它通常不会被KeyDown事件或其他事件识别。 – 2009-10-08 20:31:44

+0

ooooh,'后退'硬件按钮......更有意义。我自己有一个三星Omnia(触摸屏),所以我没有考虑任何硬件按钮。抱歉! – CodingWithSpike 2009-10-09 17:41:44

0

您可以使用本机功能AllKeys并将Form.KeyPreview设置为true以在用户按下硬键时接收KeyDown事件。将KeyDown事件处理程序添加到窗体中,在KeyDown处理程序中放置一个断点并按下“返回”按钮并检查KeyEventArgs.KeyCode的值。您可以将KeyEventArgs.Handled设置为true以防止Windows Mobile处理硬件按键。

这里是PInvoke的信息:

[DllImport("coredll.dll", SetLastError = true)] 
static extern bool AllKeys(bool bAllKeys); 

呼叫AllKeys(真)接收的KeyDown事件的硬件按键。调用AllKeys(false)以停止接收硬件密钥的KeyDown事件。这个功能没有官方文档,但是它自从Pocket PC 2003以来一直存在。请参阅here了解更多信息。

2

后退按钮是一款Windows Mobile标准版(智能手机)功能,通常是不存在的,在Windows Mobile Professional或经典(掌上电脑)设备。

在本机OS级别以下MSDN文章,题为“The Back Button and Other Interesting Buttons”描述的默认行为,以及如何重写或者改变它。

内.NET CF环境采取MSDN可看看“How to: Override the Smartphone Back Key”的文章。例如,在表单类中,您应该可以执行类似下面的操作。

// Connect an event handler to the KeyPress event 
this.KeyPress += new KeyPressEventHandler(OnKeyPress); 

private void OnKeyPress(object sender, KeyPressEventArgs ke) 
{ 
    // Determine if ESC key value is pressed. 
    if (ke.KeyChar == (Char)Keys.Escape) 
    { 
     // Handle the event to provide functionality. 
     ke.Handled = true; 

     // Add your event handling code here. 
     MessageBox.Show("Back key was pressed."); 
    } 
} 
0

在Windows Mobile中,您通常不会结束进程。使用[X]按钮关闭应用程序时,或者当您转到主屏幕时,通常会使应用程序继续运行。

在Windows Mobile的应用程序并不需要非常多的内存,因为它不会从硬盘复制到RAM。它只停留在同一个RAM点上,只是现在它是“活动的”。自然,您的应用程序应该表现良好,在没有关注时尽可能减少资源占用。

如果你不想要这种行为,当表单失去焦点时,你可以退出应用程序(Application.Exit())。您可以通过LostFocus事件轻松捕捉到这一点。

难道是我的设备上的“后退按钮”是打印红色电话的那个?

相关问题