Fullscreen - keydown event pour quitter

Résolu
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012 - 30 mars 2010 à 16:36
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012 - 7 avril 2010 à 10:58
Bonjour à tous,

J'ai une question à vous posez :

L'appli se déroule en VS2005.
J'utilise mappoint pour utiliser la cartographie.


Je souhaite faire un fullscreen de ma carte :
-> celle-ci est dans un popupcontainercontrole que je redimension pour l'avoir en plein écran.
-> j'utilise un popupcontainercontrole qui contient un panel dans lequel est ma carte.(Je ne vois plus que ma carte donc je n'ai plus accès à la popupcontainercontrole).


Mon problème :
Je veux quitter le fullscreen, j'utilise la méthode keydown. (la fonction est sur le panel)
Mais quand je fais echappe rien ne bouge.

J'ai donc fait : panel.focus();
là ça quitte mais le problème c'est que si je fais des actions sur ma carte je perd le focus.
Mais il n'y a pas possibilité de resélectionner le panel.

Ma question :
Pensez vous que je n'ai plus accès à mon panel car la carte est considérée, par mon application, sur le panel ? (alors qu'il est dedans)

Le fait de sélectionner la carte devrait sélectionner le panel vu qu'elle est dedans , non?

Merci de vos futures réponses.
Bonne fin de journée.

Cordialement,
Guilty90

2 réponses

cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
6 avril 2010 à 01:15
Le fait de sélectionner la carte devrait sélectionner le panel vu qu'elle est dedans , non?

Ben justement non. Il n'y a qu'un seul controle de sélectionné à la fois.
Je ne connais pas vraiment les cartes MapPoint, mais si ta carte possède un event KeyDown, je pense qu'il faut l'utiliser.
Autrement tu peux toujours faire un Mouse Hook pour ton application http://blogs.msdn.com/toub/archive/2006/05/03/589468.aspx
il suffit de remplacer private const int WH_MOUSE_LL 14; par private const int WH_MOUSE 7;
3
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
7 avril 2010 à 10:58
Bonjour,

Je vous remercie GG29 de votre intèret pour ma question.

Après avoir fait une autre partie du logiciel, je suis revenu sur cela et ... je n'ai pas eu envie de plus me compliquer la vie à chercher ce focus.

Donc je me suis contenté d'un hook qui m'a permis en même temps d'apprendre comment il marchait :)

Par contre, je n'ai pas utilisé le mouse hook mais un hook normale (keypress).

c'est à dire qu'on appuye sur n'importe quelle touche (ici escape).

un timer (timer_clavier) +

if (GetAsyncKeyState(27)!=0)
{
timerfullscreen.Stop();
closepopupfullscreen();
timer_clavier.Enabled = false;
}

Merci de votre aide.

Cordialement,
Guilty90
3