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
[854] [답변] DREAMSYS/ ListView에서 질문입니다./프포
박지훈.임프 [cbuilder] 4406 읽음    1999-01-03 11:19
안녕하세요. 천리안 프로그래머포럼 C++Builder 담당자 임펠리테리입니다.

리스트뷰의 선택된 아이템을 이동하려면 LVM_SETITEMPOSITION 나

LVM_SETITEMPOSITION32 메시지를 주면 되지만, 이 메시지들은 ViewStyle이 vsReport

일때는 먹히지 않습니다.

이때는 다음과 같은 방법을 써볼 수 있겠군요.

void __fastcall TForm1::UpButtonClick(TObject *Sender)
{
    ListView->Items->[ItemListView->Selected->Index-1]->Selected = true;
    SendMessage(ListView->Handle, LVM_ENSUREVISIBLE,
        ItemListView->Selected->Index, false);
}

void __fastcall TForm1::UpButtonClick(TObject *Sender)
{
    ListView->Items->[ItemListView->Selected->Index+1]->Selected = true;
    SendMessage(ListView->Handle, LVM_ENSUREVISIBLE,
        ItemListView->Selected->Index, false);
}

(인덱스가 0 이하로 내려가거나 전체 갯수 이상으로 넘어갈때의 에러처리를 하지

않았습니다.)

각 함수의 첫번째 줄로서, 현재 선택된 아이템의 위, 혹은 아래 아이템이 선택됩니다.

두번째 줄이 중요합니다.

LVM_ENSUREVISIBLE은 wparam으로서 넘겨준 인덱스의 아이템이 현재 리스트뷰에

보이지 않는 상태라면 보일 만큼만 스크롤을 해줍니다.

그럼, 도움되시길 바라면서, 이만..




독립문에서 임펠리테리였습니다.

(cbuilder, cbuilder@thrunet.com)




+ -

관련 글 리스트
847 [질문] ListView에서 질문입니다./프포 dreamsys 3869 1999/01/02
854     [답변] DREAMSYS/ ListView에서 질문입니다./프포 박지훈.임프 4406 1999/01/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.