Here is my solution, there might be a better way but I don't know
What I am doing is catching the WM_SETFOCUS and WM_KILLFOCUS of the list
control. When I get a KillFocus I remove the Editlable flag and then add it
back in after it gets the focus. I am setting the key is setting the
LVS_EDITLABLE flag using a timer so that it is not processed by the first
WM_LBUTTON down.
void CMyListCtrl::OnSetFocus(CWnd* pOldWnd)
{
CListCtrl::OnSetFocus(pOldWnd);
if (GetEditControl() == NULL)
{
SetTimer(IDT_ADDEDITLABLE,100,NULL);
}
}
void CMyListCtrl::OnKillFocus(CWnd* pNewWnd)
{
CListCtrl::OnKillFocus(pNewWnd);
if (GetEditControl() == NULL)
{
ModifyStyle(LVS_EDITLABELS,0);
}
}
void CMyListCtrl::OnTimer(UINT nIDEvent)
{
if (nIDEvent == IDT_ADDEDITLABLE)
{
KillTimer(nIDEvent);
ModifyStyle(0,LVS_EDITLABELS);
TRACE("Added\n");
}
CListCtrl::OnTimer(nIDEvent);
}
Hope this helps
AliR.
"bhu Boue vidya" <bhuvidya@yahoo.com.au> wrote in message
news:1154718897.487705.174180@s13g2000cwa.googlegroups.com...
hi there
i have a listview control with LVS_EDITLABELS style turned on
everything works fine except for one thing:
if the list is UNfocused, and i use the mouse to select the list to
bring it back into focus, AND the mouse clicks on the currently
selected item when doing this, it goes immediately into EDITLABELS mode
(ie an edit control with the item label in it)
i want to change this so it doesn;t go into EDITLABELS mode if the
selection of the current item is purely to set the focus back to the
list (try it in Windows Explorer, it doesn;t do it there)
as an aside, i have a tree view control as well, and it behaves
'properly' with regards this issue
tia
bhu