Sortie d'un contrôle EDIT multiligne.

mohdaef Messages postés 68 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 14 mars 2012 - 10 mars 2008 à 17:54
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 10 mars 2008 à 20:37
Bonjour.

J'ai un problème de sortie d'un edit multiligne, je m'explique. Dans un fenêtre j'ai plusieur contrôle edit dont un qui possède l'option ES_MULTINE et ES_READONLY, la navigation au clavier avec la touche TAB fonctionne très bien jusqu'a que je tombe dans ce contrôle edit, une fois à l'intérieur impossible d'en ressortir.

J'ai écris ce code mais sans succés.

case WM_KEYDOWN:
        switch(wParam)
        {
            case VK_TAB:
                if (GetFocus() == hedit4)
                {
                    SetFocus(hedit1);
                }
                return 0;
            default :
                break;
        }
        return 0;

Lorsque j'appui sur la touche TAB l'appui n'est pas détecté et le focus reste dans cet edit4 et ne repart pas dans l'edit1.

   Comment puis-je faire ?

Merci d'avance.

3 réponses

racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
10 mars 2008 à 18:52
Salut,
Dans la procédure de ta fenêtre, tu traites le message WM_NEXTDLGCTL comme ceci:
    case WM_NEXTDLGCTL:
        SetFocus(hedit1);
        return 0;
Si tu veux que ton Edit ne reçoive jamais le focus, enlève son style WS_TABSTOP et sous-classe le. Dans la procédure de sous-classement, tu retournes 0 en réponse aux messages WM_SETFOCUS et WM_SETCURSOR.
0
mohdaef Messages postés 68 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 14 mars 2012
10 mars 2008 à 20:32
Bonsoir,

Merci pour ta réponse c'est ce dont j'avais besoin.
0
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
10 mars 2008 à 20:37
N'oublie pas d'accepter la réponse. Ce sera utile pour ceux qui viendront après chercher une solution à ce problème.
0
Rejoignez-nous