kyuseo의 게임 프로그래밍

CListCtrl::SetTopIndex리스트콘트롤 스크롤 하기 본문

C++ 개발

CListCtrl::SetTopIndex리스트콘트롤 스크롤 하기

kyuseo 2008. 5. 19. 19:26

개요..

 

리스트 콘트롤(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) );