<pre>
void CDlgCorrection::RowSelected()
{
m_bInizio = false;
for (int i = 0; i < m_astrPathFustelle.GetSize(); i++)
{
m_lista.SetItemState(i, 0, LVIS_SELECTED);
}
m_lista.SetItemState(m_nRow, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
m_nRowSelected = m_nRow;
m_lista.SetFocus();
m_lista.SetSelectionMark(m_nRow);
}
I used this code to select a row in my CListCtrl but if I click in my CListCtrl the row is selected so then I have 2 rows selected..how Can I deselect a row before I click in my list
What I have tried:
I tried to write:
m_lista.SetItemState(m_nRow, ~LVIS_SELECTED | ~LVIS_FOCUSED, ~LVIS_SELECTED | ~LVIS_FOCUSED);
I tried also
if(m_nRow!= -1)
m_lista.SetItemState(m_nRow, ~LVIS_SELECTED, LVIS_SELECTED);
POSITION pos = NULL;
INT_PTR nPos;
pos = m_lista.GetFirstSelectedItemPosition();
if (pos)
{
nPos = m_lista.GetNextSelectedItem(pos);
}
else
{
nPos = -1;
}
but I have anyway 2 rows selected
....I solved:
<pre>
void CDlgCorrection::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)
{
m_lista.SetItemState(m_nrow, 0, LVIS_SELECTED);
m_nRowSelected = -1;
m_lista.SetFocus();
m_lista.SetSelectionMark(-1);
}