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
[18881] Re:Re:BitBlt는 해결 했으나 여전히 깜빡임은 ㅠ.ㅠ....
최흥배 [jacking] 2210 읽음    2002-05-25 16:30
BitBlt는 제가 Invalidate를 사용하니까 제대로 되는데
그래도 깜빡이는건 여전하네요...
제발 좀 아시는분 좀 가르쳐주세요...ㅠ.ㅠ
이건 게임 제작에 사용할 맵툴이라 깜빡이면 눈이 너무 피곤 할것 같아
깜빡이는거 꼭 고치고 싶네요

: ........
: void CImgprocess::WorkViewInit(TImage &workview)
: {
:                  m_WorkView = &workview;
:
:                  int width,height;
:                  //WorkView의 크기.
:                  width = m_WorkView->Width;
:                  height = m_WorkView->Height;
:                  m_iWorkWidth = width;
:                  m_iWorkHeight = height;
:                  // target비트맵 초기화.
:                  m_TargetImg->Width = width;
:                  m_TargetImg->Height = height;
:                  //모바일에서 사용하는 투명색을 바탕에 칠한다.
:                  m_TargetImg->Canvas->Brush->Color = TColor(RGB(32,144,32));
:                  m_TargetImg->Canvas->FillRect(TRect(0,0,width,height));
:                  WHLineDraw(*m_TargetImg,width,height,m_iTileW,m_iTileH);
:                  Swap();
: }
:
: // 이미지 컨트롤 바탕을 위에 지정한 색으로 칠하기 위해 비트맵에 가로,세로로 선을 그립니다.
: void CImgprocess::WHLineDraw(TImage& image,int x, int y, int tilewidth, int tileheight)
: {
:                   image.Canvas->Pen->Style = psDot;
:                   for(int i=0;i<=x;i+=tilewidth)
:                   {
:                                    image.Canvas->MoveTo(i,0);
:                                    image.Canvas->LineTo(i,y);
:                   }
:                   for(int i=0;i<=y;i+=tileheight)
:                   {
:                                    image.Canvas->MoveTo(0,i);
:                                    image.Canvas->LineTo(x,i);
:                   }
:
: }
:
: // 비트맵에 다른 비트맵에서 원하는부분만큼을 지정한 위치에 그립니다.
: void CImgprocess::DrawWorkViewTile(TileInfo& desttile)
: {
:          m_ImgMat[m_WorkTilePos.row][m_WorkTilePos.col] = m_ImgTilePos;
:          m_TargetImg->Canvas->CopyRect(desttile.rRange,m_SrcBmp->Canvas,
:                                                                        TRect(0,0,m_iTileW-1,m_iTileH-1));
:          Swap();
: }
:
: // 비트맵을 이미지 컨트롤에 그립니다.
: void CImgprocess::Swap()
: {
:                   if(m_TargetImg == NULL) return;
:                   BitBlt(m_WorkView->Canvas->Handle, 0,0,
:                                    m_iWorkWidth,m_iWorkHeight,
:                               m_TargetImg->Canvas->Handle, 0, 0, SRCCOPY);
                     m_WorkView->Invalidate();
:
:       //CopyRect는 깜박임이 있네요.
:                   //m_WorkView->Canvas->CopyRect(TRect(0,0,m_iWorkWidth,m_iWorkHeight),
:                        //                                                 m_TargetImg->Canvas,TRect(0,0,m_iWorkWidth,m_iWorkHeight));
: }


+ -

관련 글 리스트
18871 [질문] 더블 버퍼링에 대해서요.... 최흥배 1363 2002/05/25
18874     Re:[질문] 더블 버퍼링에 대해서요.... 유영인.Chris 1680 2002/05/25
18881         Re:Re:BitBlt는 해결 했으나 여전히 깜빡임은 ㅠ.ㅠ.... 최흥배 2210 2002/05/25
18882             Re:Re:Re:BitBlt는 해결 했으나 여전히 깜빡임은 ㅠ.ㅠ.... 유영인.Chris 2175 2002/05/25
18883                 메일 보냈습니다.(냉무) 최흥배 960 2002/05/25
18886                     Re:문제에 관한 해결 방법.... 유영인.Chris 2283 2002/05/26
18894                         Re:Re:정말 고맙습니다. 최흥배 1087 2002/05/27
18873     Re:[질문] 더블 버퍼링에 대해서요.... 불사새 1422 2002/05/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.