블로그는 나의 힘!
[ Programing ]/MFC2013. 5. 21. 23:24
CListCtrl 쓰다 보면 자주 필요한 기능
리스트를 갱신 하면 처음으로 되돌가는 번거로움 해결 -ㅡ+
___________________________________________________________________________________________________ 
 
 // 현재 스크롤 위치 추출
 int iScrollPos = listctrl.GetScrollPos(SB_VERT);

// 작업 코드
........
// 리스트의 현재 행 추출
int iNum(-1);
POSITION pos = listctrl.GetFirstSelectedItemPosition();
iNum =  listctrl.GetNextSelectedItem(pos);
........

// 스크롤 움직이기
CRect ref;
listctrl.GetItemRect(0,ref,LVIR_BOUNDS);
CSize szHeight(0,ref.Height() * iScrollPos);
listctrl.Scroll(szHeight);           
listctrl.SetScrollPos(SB_VERT, iScrollPos, FALSE);

// 현재 행 선택
if(iNum >= 0)
{
     // 먼저 현재 선택상태를 해제합니다
     m_list_Immun_Buff.SetItemState( -1, 0, LVIS_SELECTED|LVIS_FOCUSED );
     // 원하는 아이템을 선택합니다
     m_list_Immun_Buff.SetItemState(iNum, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
     // 선택된 아이템을 표시합니다
     m_list_Immun_Buff.EnsureVisible(iNum, false);
     // 리스트 컨트롤에 포커스를 맞춥니다
     m_list_Immun_Buff.SetFocus();

 

Posted by Mister_Q