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

Visual C++ Discussion :

Gestion de la souris listview c++ api Win32


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    38
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 38
    Par d�faut Gestion de la souris listview c++ api Win32
    Bonjour, je voudrai savoir comment r�cup�rer la cellule d'une listview avec un click de la souris
    voila ce que j'ai fait:
    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
    16
    17
     
           case WM_LBUTTONUP:
           {    
             // Déterminer l'élément pointé par la souris:
             lvhti.pt.x = LOWORD(lParam);
             lvhti.pt.y = HIWORD(lParam);
             SendMessage(hlistviewA,LVM_HITTEST,0,(LPARAM)&lvhti);
             // Ne rien faire si en dehors des éléments de la ListView:
             if (lvhti.iItem == -1) break;
             // Trouver l'élément sélectionné:
             int iSelected = SendMessage(hlistviewA,LVM_GETNEXTITEM,-1,LVIS_SELECTED);
             // Ne rien faire si aucun élément sélectionné ou s'il s'agit du même élément que celui pointé par la souris:
              if ((TabListA) && (iSelected>-1))//TabListA =>listview active
              {
              DialogBox(hInst,MAKEINTRESOURCE(IDD_CHOIX),ChildAnalyse,About);
              }        
           }
    le but est de cliqu� sur un item puis d'afficher une boite de dialogue correspondant a cette item.
    Merci

  2. #2
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Citation Envoy� par spunk62 Voir le message
    Bonjour, je voudrai savoir comment r�cup�rer la cellule d'une listview avec un click de la souris
    voila ce que j'ai fait:
    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
    16
    17
     
           case WM_LBUTTONUP:
           {    
             // Déterminer l'élément pointé par la souris:
             lvhti.pt.x = LOWORD(lParam);
             lvhti.pt.y = HIWORD(lParam);
             SendMessage(hlistviewA,LVM_HITTEST,0,(LPARAM)&lvhti);
             // Ne rien faire si en dehors des éléments de la ListView:
             if (lvhti.iItem == -1) break;
             // Trouver l'élément sélectionné:
             int iSelected = SendMessage(hlistviewA,LVM_GETNEXTITEM,-1,LVIS_SELECTED);
             // Ne rien faire si aucun élément sélectionné ou s'il s'agit du même élément que celui pointé par la souris:
              if ((TabListA) && (iSelected>-1))//TabListA =>listview active
              {
              DialogBox(hInst,MAKEINTRESOURCE(IDD_CHOIX),ChildAnalyse,About);
              }        
           }
    le but est de cliqu� sur un item puis d'afficher une boite de dialogue correspondant a cette item.
    Merci
    Salut,
    Quel est le probl�me avec lvhti.iItem ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    38
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 38
    Par d�faut
    Bonsoir, je ne c'est pas ou est le probl�me dans mon code mais la boite de dialogue ne s'affiche pas quant je clique sur un item...

  4. #4
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    As tu v�rifi� les valeurs de lvhti.iItem puis TabListA et iSelected au debugger ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    38
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 38
    Par d�faut
    Non, je ne sais pas comment utiliser le debugger sinon j'ai trouver un code qui fonctionne sur un projet, mais je poss�de un tabcontrol dans lequel j'ai ma listview, ici ma boite de dialogue s'affiche que quant je change d'onglet.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    case WM_NOTIFY :
    {
        LPNMHDR pnmhdr;
        pnmhdr=(LPNMHDR)lParam;
        if(pnmhdr->code==NM_CLICK)
        {
    	DialogBox(hInst, MAKEINTRESOURCE(IDD_CHOIX), hDlg,About);
    	return 0;
        }
    }
    break;
    de ce faite j'ai modifi� le code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    case WM_NOTIFY :
    {
        LPNMHDR pnmhdr;
        pnmhdr=(LPNMHDR)lParam;
        if(pnmhdr->hwndFrom == hlistviewA && pnmhdr->code==NM_CLICK)
        {
    	DialogBox(hInst, MAKEINTRESOURCE(IDD_CHOIX), hDlg,About);
    	return 0;
        }
    }
    break;
    Maintenant la boite de dialogue IDD_CHOIX ne s'affiche pu...

    Ma fen�tre principale et une dialogue box dans laquelle j'ai un tabcontrol plusieurs onglet contenant des boites de dialogue enfant et dans la boite de dialogue enfant 1 j'ai mis une listview.

    J'explique tout sa car il me semble que hwndFrom ne fonctionne pas avec les boites de dialogue.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    38
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 38
    Par d�faut
    J'ai re�u un peu d'aide :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    case WM_NOTIFY :
    {
        LPNMITEMACTIVATE lpnmitem;
        lpnmitem = (LPNMITEMACTIVATE) lParam;
        if(lpnmitem->pnmhdr->hwndFrom == hlistviewA && lpnmitem->pnmhdr->code==NM_CLICK)
        {
           DialogBox(hInst, MAKEINTRESOURCE(IDD_CHOIX), hDlg,About);
           return 0;
        }
    }
    break;
    mais j'ai les erreurs suivante:
    'pnmhdr'*: n'est pas membre de 'tagNMITEMACTIVATE'
    voir la d�claration de 'tagNMITEMACTIVATE'
    pouvez-vous m'aider !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 0
    Dernier message: 21/04/2008, 18h22
  2. [API WIN32] Pb avec SHGetSpecialFolderLocation
    Par Invit� dans le forum MFC
    R�ponses: 3
    Dernier message: 27/01/2004, 21h19
  3. [API Win32] WriteFile()
    Par tut dans le forum MFC
    R�ponses: 2
    Dernier message: 27/01/2004, 16h13
  4. API Win32
    Par benoit70 dans le forum MFC
    R�ponses: 8
    Dernier message: 26/01/2004, 19h11
  5. [API win32] R�cup�rer le r�pertoire d'un profile
    Par sbeu dans le forum API, COM et SDKs
    R�ponses: 3
    Dernier message: 27/09/2002, 12h38

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