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 :

Récupérer Coordonné Ligne et Colonne dans une CListCtrl


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut Récupérer Coordonné Ligne et Colonne dans une CListCtrl
    bonjour,

    dans une CListCtrl
    je voudrai recuperer la position exacte Ligne et colonne de l'endroit où je clique avec ma souris, pour ca je fais ca

    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 CListCtrlTestDlg::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
    {
    	LPNMITEMACTIVATE pNMIA = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
    	int nItem = -1;
    	int nSubItem = -1;
    	if (pNMIA)
    	{
    		nItem = pNMIA->iItem;
    		nSubItem = pNMIA->iSubItem;
    	}
    	TRACE(_T("in CListCtrlTestDlg::OnClick:  %d, %d\n"), nItem, nSubItem);
     
    	*pResult = 0;
    }
    je constate que pour les lignes j'ai toujours -1 alors que les colonnes sont bien indiqué.
    alors j'ai rajouté ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_MaListe.SetExtendedStyle(m_MaListe.GetExtendedStyle() | LVS_EX_FULLROWSELECT );
    ca marche bien , donc j'ai une coordonnée LIGNE-COLONNE
    mais je ne veux pas que la ligne sous mise en surbrillance.

    y a-t-il une autre solution , pour avoir les coordonnées L-C et ne pas avoir de surbrillance ? ou cacher la surbrillance

    merci d'avance

  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
    Points : 17 323
    Points
    17 323

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    en fait , j'obtiens des coordonnées exacte , mais uniquement si j'ai le style LVS_EX_FULLROWSELECT, et le probleme c'est que ce style me met le ligne completes en bleu , et je ne veux pas de cette ligne bleue

  4. #4
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    SubItemHitTest

    tu mets les coordonnées de ta souris dans pt de la structure LVHITTESTINFO et normalement tu devrais recuperer la ligne et la colonne dans int iItem et int iSubItem

    attention, je ne sais plus si il faut mettre les coordonnées en relatif ou non donc il est possible qu'il faille ajouter un ScreenToClient

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    mais on met ca dans quel evenement ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    pour résumer la chose, comment feriez-vous pour selectionnée et coloré le fond d'un subitem simplement en clickant dessus.
    1 SUBITEM , pas toutes la ligne.

  7. #7
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    pour que ça soit permanent il faut reprendre la main sur le dessin des lignes
    sur le click il faudra memoriser dans une map pour l'item (la clef) la colonne qui doit changer de couleur , et provoquer un InvalidateRect de la surface concernée.
    pour le dessin des lignes voir ce post:
    http://www.developpez.net/forums/vie...ight=clistctrl


  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    C'est bon j'ai trouvé , c'etait encore plus facile que ce que je pensais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // No blue line when row is selected 
     
    void CXListCtrl::OnItemchanging(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
     
    	if(pNMListView->uChanged & LVIF_STATE && pNMListView->uNewState & LVIS_FOCUSED)
    		*pResult = 1;
    	else
    		*pResult = 0;
    }
    Merci encore pour votre aide

  9. #9
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    donc ce n'etait pas colorer que tu voulais mais selectionner uniquement ..

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    oui...

    merci encore .

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/01/2015, 10h05
  2. Réponses: 5
    Dernier message: 01/04/2014, 13h10
  3. [AC-2010] Lignes et colonnes dans une requête
    Par pascal5 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/01/2013, 15h27
  4. Réponses: 1
    Dernier message: 08/07/2008, 12h58
  5. Récupérer des lignes non enregistrées dans une table
    Par leddy dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/04/2008, 15h09

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