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
[15268] Re:[질문]ScrollBar에 대해서...
최보현.U&I [uriduri] 898 읽음    2002-02-04 19:46
최익수 님이 쓰신 글 :
: 안녕하세요?...꾸벅....^^
: 변함없이 모르는게 무지 많아서리...이렇게 질문을 올립니다.
:
: 다름이 아니라...ScrollBar에 대해서 묻고 싶은데요...
: ScrollBar의  "thumb tab"(그니까...스크롤바 가운데 있는거...)을 드래그하면
: OnChange나 OnScroll메세지가 계속 날라오는데....오직 position이 변경이 되어야지만
: 메세지가 오게할 수 있을까요?
:
: 그니까..."thumb tab"을 드래그 하던, 마우스로 양쪽의 버튼을 누르던지 간에
: 변경된 Position의 결과만 알고 싶습니다.
: 왜냐하면, 위의 메세지 핸들러를 썼더니 계속해서 핸들러가 불려지더라고요...
: 근데, 그러면 저희 프로그램은 버벅이거든요....^^
: 오직 변경이 되었을 때에만...딱 한번씩만 페이지를 변경하고 싶습니다.
:
: 아고...쉬운 얘기를 무지 어렵게 써놓은거 같군요....지송...^^;
:
: 그럼...좋은 답변 기대하며....
:
: 안녕히....꾸벅....
:
:
: 참...설날이 가까이 왔으니....새해인사를....^^
: 새해에는 돈들 많이 버시고....
: 무엇보다...건강 잃지 않기를 바라겠습니다...
: 새해 복 많이 받으세요~~~~

유앤아이 현지 아빠입니다

음 다른 각도에서 해결 하는 방법을 야그 해보도록 하겠습니다 ...

일반적으로 페스트 스크롤이란 기능을 야그 하는데요~

그 기능은 다음과 같은 것입니다 ...

엄청나게 큰 텍스트 문서를 에디터에 올리고 ... 스크롤을 하다가 보면 ...

맨 위에 몇줄만 계속 바뀌다가 .... 스크롤이 끝나 시점에서 원하는 페이지가 쭉 출력되는

그런 모습을 보셨을 겁니다 ...

이걸 구현 하는 방법이요 그리 어렵지 않습니다 ...

스크롤 메세지를 받아서 다시 그리는 부분을 다음과 같이 작성합니다 ...

RePaint()
{
RepaintAgain = false;
.....
.....
.....
if(RepaintAgain)  return;      // 그리는 루프안에 언제라도 빠저나갈수 있도록 조치한다.
.....
.....
.....
}

메세지를 받는 부분에서는

ReciveMessage()
{
    RepaintAgain = true;       // 아직도 그리고 있는 부분이 있다면 무조건
                               // 빠저나가도록 프래그를 세운다.
    RePaint();                 // 그 페이지를 다시 그리게 한다.
}


에구 이해 하실 련지 ...
암튼 이런식으로 짜놓으면 ....
미처 위에 3줄 밖에는 못그리고 있는 상황에서 ... 또 스크롤 메세지가 들어오면 ...
3줄 밖에 못그리던놈은 ... 그냥 빠져나가 버리고,... 다시 처음 부터 그리게 됩니다 ...
그래서 맨위만 자꾸 바뀌다가 ,,, 스크롤 메세지가 끝나는 그 시점에 최종적으로
한페이지가 다그려지게 되는거지요~

그럼 성공 하시길........

+ -

관련 글 리스트
15237 [질문]ScrollBar에 대해서... 최익수 817 2002/02/03
15268     Re:[질문]ScrollBar에 대해서... 최보현.U&I 898 2002/02/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.