|
소영 님이 쓰신 글 :
: 다음과 같이 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 에 넣는 것입니다.
|