Bonjour,
Je veux sélectionner une ligne entière par programme dans un ListCtrl
La sélection manuelle fonctionne bien .
La fonction .. EnsureVisible(....) fonctionne bien mais pas de surlignage de la ligne.
Ci joint extraits de code qui pourraient être en cause:
Pouvez-vous me donner la solution?
A l'avance merci.


Dans InitDialog:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
// mode report.edit ,
    m_ListPoints.ModifyStyle(0,LVS_REPORT | LVS_EDITLABELS );
//Select ligne entière
   m_ListPoints.SetExtendedStyle(m_ListPoints.GetExtendedStyle() | LVS_EX_FULLROWSELECT);


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
 
void COutilsDAT::SelectionnerItem(int NumPOINT)
{
 m_ListPoints.SetItemState(NumPOINT, LVIS_SELECTED, LVIS_SELECTED); 
 m_ListPoints.EnsureVisible(NumPOINT, FALSE); 
}
 
void COutilsDAT::TrouverEtSelectionnerLaLigne()
{
	int numPOINT;
	int X=XYPointCourbeSelectionne.x;
	int Y=XYPointCourbeSelectionne.y;
	DeselectionnerTout();
	numPOINT=TouverItemListe(X,Y);
	if (numPOINT!=-1)
		SelectionnerItem(numPOINT);
}