티스토리 뷰

MFC에서 List Control(리스트 컨트롤)의 특정 위치를 선택하는 함수를 구현해보았다.

void SetLlistCtrlSelected(CListCtrl *pCtrlint uid)
{
    pCtrl->SetItemStateuidLVIS_SELECTEDLVIS_SELECTED );    // 회색 됨
    pCtrl->EnsureVisibleuidFALSE );                                         // 스크롤
    pCtrl->SetFocus();                                                                 // 파랗게 만들기
}

매개변수 :
   pCtrl은 List Control의 포인터.
   uid는 선택을 할 목록의 자리이다. 즉, 몇 번째 자리를 선택할지 여부이다.

설명 :
   SetIteamState란 함수로 uid번째의 아이템을 선택하도록 한다.
   이 함수만 수행하면 아마 회색(포커스가 없는) 상태가 된다. 그래서
   SetFocus란 함수를 이용하여 파란색(윈도우 설정마다 다르겠지만, 포커가 있는) 상태로
   만든다.
   그 중간의 EnsureVisble은 선택하려는 컬럼이 스크롤 밑에 있을 경우 그 쪽으로 이동시켜주는
   역할을 한다.

   다이알로그 창이 뜰 때 초기 선택할 값으로 이용할때 사용하면 좋다.
댓글