2009-10-08 37 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事件輕鬆捕捉到這一點。

難道是我的設備上的「後退按鈕」是打印紅色電話的那個?

相關問題