kyuseo의 게임 프로그래밍
CListCtrl::SetTopIndex리스트콘트롤 스크롤 하기 본문
개요.. |
리스트 콘트롤(CListCtrl)은 GetTopIndex() 함수는 있지만 반대로 SetTopInex() 함수가 존재하지 않습니다.
SetTopInex 와 유사하게 작동되는 코드를 만들어 봅니다.
코드 |
CWnd 에 존재하는 Scroll 함수를 이용하면 SetTopInex와 유사한 코드를 만들 수 있습니다.
int nOldItem = m_nItem; int nScroll = m_lc.GetTopIndex();
m_lc.SetRedraw( FALSE ); m_lc.DeleteAllItems();
for( int i = 0; i < m_aQResult.GetSize(); i++ ) { QRESULT& r = m_aQResult[i];
m_lc.InsertItem( i, r.s[0] );
for( int j = 0; j < 20; j++ ) { m_lc.SetItemText( i, j, r.s[j] ); }
m_lc.SetItemText( i, 13, (r.n[11]==0||r.n[11]==5) ? "X" : "O" ); m_lc.SetItemText( i, 14, (r.n[12]==0||r.n[12]==5) ? "X" : "O" ); }
m_lc.SetRedraw( TRUE ); m_lc.SetItemState( nOldItem, LVIS_SELECTED, LVIS_SELECTED ); m_lc.Scroll( CSize( 0, (nScroll)*19) );
|