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
[46529] Re:Re:화면깜박임 질문이요~
Batman [] 1460 읽음    2006-09-13 13:33
이상하게 BDS 2006에서는 깜빡임이 심하네요. DoubleBuffer도 잘 안먹고요..

BloodWolf 님이 쓰신 글 :
: 허접 님이 쓰신 글 :
: : 안녕하세요~
: : 오랜만에 질문 드리는 허접입니다.
: : 그래픽(?) 관련해서 질문이 있습니다.
: : 현재 RS232 통신을 통해서 들어오는 데이터를 가지고 라인을 그리고 있습니다.
: : Panel 위에 Image Box 를 놓고 그 위에 라인을 그립니다.
: :
: : ---------------------------------------------------------------------
: :     POINT pt;
: :     GetCursorPos (&pt);
: :     SetCursorPos (bData[3]+pt.x, bData[2]+pt.y);
: :
: :     CI1->Canvas->MoveTo(pt.x-Left-203, pt.y-Top-109);
: :     CI1->Canvas->LineTo(bData[3]+pt.x-Left-203, bData[2]+pt.y-Top-109);
: : ---------------------------------------------------------------------
: :
: : 그런데 문제는,  CI1 이라는 Image Box에 JPEG 형식의 그림 파일을 dll로 등록해서 배경그림으로 사용하고 있는데, 화면에 라인을 그려줄때 화면이 엄청나게 깜박거리네요.
: : 음...   더블버퍼링인가..  그게 유일한 해결책이라고 하는거 같은데, 어찌 사용을 해야하는지 모르겠습니다.
: : 해결책좀 알려주세요~~  가능하시다면..  소스도 부탁 드릴께요..
:
: double buffering은 main form 생성자 부분에서 다음 코드를 넣어주면 됩니다.
:
: this->DoubleBuffered=true;
:
: Panel에 그림을 그리는 루틴에서는 다음과 같이 Canvas에 Lock/Unlock을 사용해 주면 깜박임이 줄어듭니다.
:
:     POINT pt;
:     GetCursorPos (&pt);
:     SetCursorPos (bData[3]+pt.x, bData[2]+pt.y);
:
:     CI1->Canvas->Lock();
:     try
:     {
:         CI1->Canvas->MoveTo(pt.x-Left-203, pt.y-Top-109);
:         CI1->Canvas->LineTo(bData[3]+pt.x-Left-203, bData[2]+pt.y-Top-109);
:     } __finally
:     {
:         CI1->Canvas->Unlock();
:     }

+ -

관련 글 리스트
46526 화면깜박임 질문이요~ 허접 908 2006/09/13
46527     Re:화면깜박임 질문이요~ BloodWolf 1329 2006/09/13
46529         Re:Re:화면깜박임 질문이요~ Batman 1460 2006/09/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.