C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[29633] Re:질문 ] 리스트 뷰에서, 스크롤바 원하는 위치에 scroll시키려면?
공부하는 이 [] 1586 읽음    2004-05-06 09:43
초록물고기 님이 쓰신 글 :
: 안녕하세요..
: 리스트 뷰에 (report 스타일) 많은 데이타를 첨가해서 (약 1000 개이상 )
: 스크롤 바가 생겼습니다.
:
:
: 그런데...특정버튼이 눌리면 , 리스트 뷰의 캡션들을 검사하여,
: 원하는 row 가 있는 곳 까지 scroll up 시키거나, scroll down 시키려고 합니다.
: (예를 500번째에 원하는 row 가 있었다면,, scroll bar를 대충 500번째 근처에 갔다 놓으려고 합니다)
:
: 즉 원하는 데이타가  화면의 llistview 안에 들어오도록 scroll bar를 자동으로 움직이려 하는데...
: 이런것이 가능하나요?
: 도움말에서 scroll 함수가 있어서, scroll (x, y )에서 아무런 좌표를 지정해 보니 ,스크롤 바가 움직입니다.. 문제는 y 좌표를 알아내는 것이 문제인데... 리스스트 뷰에서마우스가 마우스가 움직였을때는, GetItemAt (X,Y )에서  y좌표를 구할 수가 있습니다.
:
: 그렇지 않고, 리스트뷰의 특정한  row의  y좌표를 구해서,,, scroll을 시키고 싶은데...
: y 좌표를 어떻게 알아낼수 있는지요?
:
:
:
: 수고 하세요.
:
:


전 이런 식으로 사용했네요.
nNo는 화면상에 보시되어야할 특정 Item의 Index입니다.
현재 스크롤 한다는 걸 보여주기위해, 리스트뷰의 한 페이지 단위로 여러번 스크롤하는 방식으로 했어요.
전 그냥 while 내부에 Application->ProcessMessages();를 사용했는데
그보단 스레드나 타이머 쓰시는게 좋을듯;;
Index만 알면 ListView_GetItemRect매크로로 y값을 구할 수 있으니 이용하시면 될거같습니다.

void TForm1::ScrollTextList()    
{
    RECT rc;
    ListView_GetItemRect(ListView1->Handle, 0, &rc, LVIR_BOUNDS);
    int Dist = rc.bottom - rc.top;

    while (nNo < ListView1->TopItem->Index)
    {
        ListView_Scroll(ListView1->Handle, 0, -Dist * ListView1->VisibleRowCount);
        Application->ProcessMessages();
    }

    while (nNo > ListView1->TopItem->Index + ListView1->VisibleRowCount)
    {
        ListView_Scroll(ListView1->Handle, 0, Dist * ListView1->VisibleRowCount);
        Application->ProcessMessages();
    }
}

+ -

관련 글 리스트
29632 질문 ] 리스트 뷰에서, 스크롤바 원하는 위치에 scroll시키려면? 초록물고기 1200 2004/05/05
29634     Re:질문 ] 리스트 뷰에서, 스크롤바 원하는 위치에 scroll시키려면? 방태윤 2229 2004/05/06
29633     Re:질문 ] 리스트 뷰에서, 스크롤바 원하는 위치에 scroll시키려면? 공부하는 이 1586 2004/05/06
29639         Re:Re:질문 ] 리스트 뷰에서, 스크롤바 원하는 위치에 scroll시키려면? 초록물고기 1868 2004/05/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.