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
[4169] Re:Image위에 그려진 비트맵메만 마우스 이벤트를 주는게 가능한가요?
전종욱 [] 3714 읽음    2000-10-08 00:00
소영 님이 쓰신 글 :
: 다음과 같이 Image에 비트맵이미지를 그렸습니다.
:
: {
:
:      pBitmap = new Graphics::TBitmap(); 
:      pBitmap->LoadFromFile("c:\mix.bmp");
:      pBitmap->Transparent = true; 
:      Image1->Transparent=true;
:      pBitmap->TransparentMode = tmAuto;
:      Image1->Canvas->Draw(200,100,pBitmap);
:  
: }
:
: 비트맵이미지가 그려진후, 코드에서 비트맵이 놓여진 특정영역을 지정하지 않아도
: 실행시 마우스가 비트맵이미지 위로 가면 마우스이벤트를 발생하게 하고 싶습니다.
: 가능할까요?
:
: 아님 Image1 크기를 자동으로 비트맵이미지 크게에 맞출수 있나요?
: 이게 가능하다면 비트맵 대신 Image1에 대한  마우스이벤트를 만들면 될 것 같은데요. 
: Autosize속성을 true로하고 실행시켜 봤는데 비트맵이미지가 안 나타나더군요.
:
: 방법 좀 알려주세요... 부탁드립니다.


다음과 같이 코딩해 보세요.

    pBitmap = new Graphics::TBitmap(); 
    pBitmap->LoadFromFile("c:\mix.bmp");
    Image1->Picture->Bitmap->Assign(pBitmap);
    Image1->Height = pBitmap->Height;
    Image1->Width = pBitmap->Width;

한가지 팁을 더 말씀드리면 소영님이 맨 마지막 줄에 쓰신

Image1->Canvas->Draw(200,100,pBitmap)와 같이 코딩한다면

그 이미지 위에 다른 창을 올려 놨다가 치우면 그림이 지워지게 됩니다.

무슨 얘긴가 하면 TImage의 Canvas에다 그리면 Repaint 메시지가 일어날 때마다

그려 넣지 않는 이상 새로 그려지지 않는다는 거죠.

그렇기 때문에 그려 넣을 이미지를 Image->Picture->Bitmap 에 넣는 것입니다.

+ -

관련 글 리스트
4162 Image위에 그려진 비트맵메만 마우스 이벤트를 주는게 가능한가요? 소영 3105 2000/10/06
4169     Re:Image위에 그려진 비트맵메만 마우스 이벤트를 주는게 가능한가요? 전종욱 3714 2000/10/08
4170         Re:정말 고맙습니다.(--)(__)(--)(__)[내용무] 소영 3138 2000/10/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.