IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

OnKeyDown d'un List Control


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Par défaut OnKeyDown d'un List Control
    Bonsoir à tous,

    J'utilise l'évènement OnKeyDown sur un List control, dont voici la méthode de gestion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void CVirtual120Dlg::OnLvnKeydownOptions(NMHDR *pNMHDR, LRESULT *pResult)
    Mais je ne parviens pas à trouver dans la doc à quoi sert le pointeur *pResult. Pouvez-vous m'éclairer ?

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    logiquement si tu as intercepter le message LVN_KEYDOWN tu obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void CTestSDIView::OnKeydownList1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    	LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
    	// TODO: Add your control notification handler code here
    	TRACE ("\nTouche :%d",pLVKeyDow->wVKey);
    	*pResult = 0;
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Par défaut
    Exact! Mais à quoi sert pResult ?

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    oups j'ai zappé le reste lol,
    presult permet de notifier si la touche doit etre prise en compte par la CListCtrl .
    exemple : si tu fais fleche haut ou bas cette fonction est appelée
    si *presult=0 la listctrl traitera le message
    si *presult=1 la listctrl ignorera le message et tu ne pourras donc plus utiliser
    fleche haut/bas ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Par défaut
    Merci pour ta réponse, farscape.

    Maintenant j'intercepte les touches pressée dans la listbox dans cette méthode, mais les touches interceptées sont toutes en majucule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    void CVirtual120Dlg::OnLvnKeydownOptions(NMHDR *pNMHDR, LRESULT *pResult)
    {
     
    	LPNMLVKEYDOWN pLVKeyDow = reinterpret_cast<LPNMLVKEYDOWN>(pNMHDR);
    	switch(pLVKeyDow->wVKey)
    	{
    	case (VK_DOWN): // ces touches ne sont pas transmises a l'editbox du filtre
    	case (VK_UP):
    	case (VK_PRIOR):
    	case (VK_NEXT):*pResult = 0;
    					break;
    	default: m_bFiltre.SendMessage(WM_CHAR,pLVKeyDow->wVKey,0);
    	*pResult = -1;
    	}

    pLVKeyDow->wVKey est toujours en majuscule, même si je presse 'a' sur le clavier... Pq celà ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Par défaut
    C'est bon j'intercepte le message WM_CHAR dans ma CListCtrl !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion en int depuis un list control
    Par riric_94 dans le forum MFC
    Réponses: 13
    Dernier message: 06/06/2006, 20h30
  2. List control
    Par had182 dans le forum MFC
    Réponses: 3
    Dernier message: 07/01/2006, 12h31
  3. [MFC]List Control : problème d'affichage
    Par gege2061 dans le forum MFC
    Réponses: 5
    Dernier message: 25/07/2005, 13h40
  4. Trier un list control
    Par Delian dans le forum MFC
    Réponses: 2
    Dernier message: 06/10/2004, 17h44
  5. (MFC) Redimensionner une List Control auto / Boite Dlg
    Par Guybrush113 dans le forum MFC
    Réponses: 7
    Dernier message: 23/04/2004, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo