[MFC] CListCtrl 특정 위치 선택하기
MFC에서 List Control(리스트 컨트롤)의 특정 위치를 선택하는 함수를 구현해보았다.
void SetLlistCtrlSelected(CListCtrl *pCtrl, int uid)
{
pCtrl->SetItemState( uid, LVIS_SELECTED, LVIS_SELECTED ); // 회색 됨
pCtrl->EnsureVisible( uid, FALSE ); // 스크롤
pCtrl->SetFocus(); // 파랗게 만들기
}
{
pCtrl->SetItemState( uid, LVIS_SELECTED, LVIS_SELECTED ); // 회색 됨
pCtrl->EnsureVisible( uid, FALSE ); // 스크롤
pCtrl->SetFocus(); // 파랗게 만들기
}
매개변수 :
pCtrl은 List Control의 포인터.
uid는 선택을 할 목록의 자리이다. 즉, 몇 번째 자리를 선택할지 여부이다.
설명 :
SetIteamState란 함수로 uid번째의 아이템을 선택하도록 한다.
이 함수만 수행하면 아마 회색(포커스가 없는) 상태가 된다. 그래서
SetFocus란 함수를 이용하여 파란색(윈도우 설정마다 다르겠지만, 포커가 있는) 상태로
만든다.
그 중간의 EnsureVisble은 선택하려는 컬럼이 스크롤 밑에 있을 경우 그 쪽으로 이동시켜주는
역할을 한다.
다이알로그 창이 뜰 때 초기 선택할 값으로 이용할때 사용하면 좋다.
참고 : 메모장_MFC의 글