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();
}
'[ Programing ] > MFC' 카테고리의 다른 글
컨트롤 깜빡임 방지 및 출력 속도 (매우 약간) 상승 (0) | 2013.05.21 |
---|---|
GetLastError() 함수 (0) | 2013.05.21 |
ClistCtrl 리스트컨트롤 체크박스 체크 여부 검사 방법 (0) | 2013.05.21 |
파일저장시 경로 보존 - CFileDialog (0) | 2013.05.21 |
CWnd 스크롤 제어 하기 (0) | 2013.05.21 |