CListCtrl & LBUTTONDOWN

Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007 - 5 avril 2005 à 16:28
Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007 - 6 avril 2005 à 10:10
Bonjour,



j'ai dans une boite de dialogue de mon appli une CListCtrl dans laquele
j'insère de ligne coreespondant à des produits selectionés. Mon
problème est que je n'arrive pas à capter l'evenement OnLButtonDown
quand je clique sur une des lignes de ma liste.

J'ai pourtant mis dans mon .cpp :



BEGIN_MESSAGE_MAP(CSaisieViewBottom, CFormView)

//{{AFX_MSG_MAP(CSaisieViewBottom)

ON_WM_LBUTTONDOWN()

//}}AFX_MSG_MAP

END_MESSAGE_MAP()



void CSaisieViewBottom::OnLButtonDown(UINT nFlags, CPoint point)

{

AfxMessageBox("Click");

}



Avec la declaration correspondante dans le .h, mais rien y fait.



Qui pourrait m'aider svp ?

9 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
5 avril 2005 à 16:48
ON_WM_LBUTTONDOWN
est à la riguer à traiter dans une classe perso dérivée de
CListCtrl
. Si c'est pour détecter un changement de sélection, c'est plus ON_LBN_SELCHANGE qu'il faut traiter
0
Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007
5 avril 2005 à 16:53
Ma classe derive d'une CFormView, et contient plusieurs CListCtrl.

Je cherche a intercepter un click de souris sur une des lignes de ma liste pour faire apparaitre une popup sur celle ci.
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
5 avril 2005 à 16:58
Donc il va falloir créer une nouvelle classe dérivant de CListCtrl. Cette
classe ne traitera que le click. Pour l'incorporer à la vue il faudra faire un CreateWindow (ou Create je sais plus) au lieu d'utiliser les ressources. Il est cependant peut-être possible d'associer directement l'ID du contrôles à la nouvelle classe en modifiant à la main les zones AFX des sources.
0
Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007
5 avril 2005 à 17:31
Y'aurait pas un moyen de faire un truc du genre :

ON_BN_DOUBLECLICKED(IDC_BTN_QUANTITE_PLUS, OnDoubleclickedBtnQuantitePlus)

Comme j'ai fait avec les boutons de ma fenetre dans le message map ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
6 avril 2005 à 09:26
Pour le double click oui :
ON_LBN_DBLCLK

pour le silple click il faut sous-classé.
0
Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007
6 avril 2005 à 09:38
J'ai essayé cet evenement, mais je n'arrive pas à le recevoir. J'ai
donc essayé de rajouter LBS_NOTIFY dans le style de ma liste :

m_Liste.SetExtendedStyle(m_Liste.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LBS_NOTIFY);




Mais rien n'y fait, ca ne passe tjs pas.

RQ: je ne sais pas si ca joue, mais je n'ai pas de create sur ma liste,
j'ai juste une association de variable sur ma liste avec le classe
wizard :

DDX_Control(pDX, IDC_LISTE, m_ListeRefs);

avec IDC_LISTE l'identifiant de ma liste dans mes ressources.
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
6 avril 2005 à 09:42
Le style LBS_NOTIFY est à cocher dans les ressources de ta form. ou à rajouter par ModifyStyle

Essaye dans ce cas de traiter WM_NOTIFY et le code NM_CLICK
0
Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007
6 avril 2005 à 09:54
Si le style est à modifier sur les propriétés de ma boite de dialogue, je ne le trouve pas.

J'ai un "No parent notify" decoché, mais je ne pense pas que ce soit ca ?
0
Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007
6 avril 2005 à 10:10
En fait mon soucis c'est que je n'arrive pas a intercepter un seul des messages specifier dans la MSDN ( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_clistbox.asp
)

Je pense que je vais abandonner l'ajout des mes elements selectionnés
dans cette liste, je vais passer par un autre control, en esperant que
ca marche avec cet autre control. Je ne sais pas encore lequel utiliser.
0
Rejoignez-nous