2009-10-08 14 views

Répondre

0

Je ne sais pas exactement ce que vous entendez par le bouton « retour », mais le comportement par défaut dans Windows Mobile pour toutes les applications est que le bouton « X » l'application qui serait le bouton "fermer" dans Windows standard, se comporte comme "minimiser" et déplace l'application à l'arrière-plan. Pour vraiment "fermer" l'application, vous devriez normalement aller dans le gestionnaire de tâches Windows Mobile et terminer l'application.

+0

Sur de nombreux appareils WM, en plus du bouton «OK» il y a aussi un bouton «Retour», symbolisé par une flèche. Le comportement normal, je crois, est qu'il fait immédiatement apparaître l'utilisateur sur l'écran Aujourd'hui.Je pense que c'est le bouton dont il parle. Je ne suis pas sûr de savoir comment modifier ou masquer le comportement du bouton, car il n'est généralement pas reconnu par un événement KeyDown ou quoi que ce soit. –

+0

ooooh, un bouton matériel "arrière" ... qui a plus de sens. Avoir un Samsung Omnia (écran tactile) moi-même, donc je ne pensais pas à des boutons matériels. Pardon! – CodingWithSpike

0

Vous pouvez utiliser la fonction native AllKeys et définir le Form.KeyPreview sur true pour recevoir les événements KeyDown lorsque l'utilisateur appuie sur les touches matérielles. Ajoutez un gestionnaire d'événement KeyDown à votre formulaire, mettez un point d'arrêt dans le gestionnaire KeyDown et appuyez sur le bouton "Précédent" et examinez la valeur de KeyEventArgs.KeyCode. Vous pouvez définir KeyEventArgs.Handled sur true pour empêcher le traitement de la touche matérielle par Windows Mobile.

Voici les informations PInvoke:

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

AllKeys d'appel (true) pour recevoir des événements KeyDown pour les clés matérielles. Appelez AllKeys (false) pour ne plus recevoir d'événements KeyDown pour les clés matérielles. Il n'y a pas de documentation officielle pour cette fonction, mais elle existe depuis Pocket PC 2003. Voir here pour plus d'informations.

2

Le bouton Précédent est une fonctionnalité Windows Mobile Standard (smartphone) qui n'est généralement pas présente sur les périphériques Windows Mobile Professional ou Classic (Pocket PC).

Au niveau du système d'exploitation natif, l'article MSDN suivant intitulé «The Back Button and Other Interesting Buttons» décrit le comportement par défaut et comment le remplacer ou le modifier.

Dans l'environnement .NET CF, consultez l'article "How to: Override the Smartphone Back Key" disponible sur MSDN. Par exemple, dans une classe de formulaire, vous devriez être capable de faire quelque chose comme ceci.

// 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

Dans Windows Mobile, vous ne terminez normalement pas les processus. Lorsque vous fermez l'application avec le bouton [X] ou lorsque vous accédez à l'écran d'accueil, il est courant de laisser l'application en cours d'exécution.

Une application sur Windows Mobile ne prend pas beaucoup plus de mémoire, car elle n'est pas copiée du disque dur vers le ram. Il reste juste sur le même point RAM, seulement maintenant il est "actif". Naturellement, votre application devrait se comporter correctement, en prenant autant de ressources que possible lorsqu'elle n'a pas d'objectif. Si vous ne voulez pas ce comportement, vous pouvez quitter l'application (Application.Exit()), lorsque votre formulaire perd le focus. Vous pouvez l'attraper facilement avec l'événement LostFocus.

Est-il possible que le "bouton arrière" de mon appareil soit celui sur lequel le téléphone rouge est imprimé? Que voulez-vous dire par bouton de retour ..?