[ListCtrl] 아이템 강제 선택 - SetItemState(), SetSelectionMark(), SetFocus()
★━─…C/C++/MFC 2008. 9. 17. 22:36아이템 강제 선택 - SetItemState(), SetSelectionMark(), SetFocus()
------------------------------------------------------------------------------------------------
저도 같은 내용을 검색 하다가 다음과 같은 내용을 찾았습니다. 즐프.. ^^;
ListCtrl::SetSelectionMark(int i) : i번째 item을 선택하는 것은 맞습니다.
단지 포커스까지 주지 않기때문에 표시(파란줄)가 되지 않을 뿐이지 내부적으로 현재 선택된 아이템은 i번째 아이템입니다.
m_list1.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED) : 이것만 사용하시면 문제가 발생할 수 있습니다.
내부적으로 자동 선택된 아이템의 인덱스와 표시(파란줄)된 아이템의 인덱스가 달라질 수 있거든요..
표시된 아이템을 삭제하려고 삭제 버튼을 눌렀는데 딴 아이템이 삭제되는 일이 생길 수 있겠죠..
그래~서 이렇게 사용하시면 깔끔하실 듯 싶습니다.^^호호
m_cListCtrl.SetSelectionMark(i);
m_cListCtrl.SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
m_cListCtrl.SetFocus();