|
안녕하세요?
이미지 제어를 잘 못하다보니 오류가 자꾸 발생해서요.. 이렇게 글을 적어올립니다. ㅠ_ㅠ
상황은 이렇습니다;;
먼저 Form1에 TImage 타입의 Image1을 만들고, 크기를 Width=500, Height=3000으로 선언했습니다.
여기까지는 콤포넌트를 직접 끌어놓아 만들었구요,
실제 코딩은 Form1의 OnActivate() 이벤트에 다음과 같이 했습니다.
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
Graphics::TBitmap *TempBuffer;
TempBuffer=new Graphics::TBitmap;
TempBuffer->LoadFromFile("c:\\dot.bmp");
Image1->Canvas->CopyRect(Rect(100, 100, 101, 2500), TempBuffer->Canvas, TempBuffer->Canvas->ClipRect);
if(TempBuffer!=NULL)
{
delete TempBuffer;
TempBuffer=NULL;
}
}
//---------------------------------------------------------------------------
dot.bmp라는 이미지는 1X1 크기의 파란색 점입니다. 이 점을 길이 2500짜리 라인으로 그으려는 것입니다.
위의 내용을 실행하면 치명적인 오류가 발생하면서 프로그램이 정지합니다.
제가 윈도우 프로그래밍에 굉장히 취약하다보니 이유를 모르겠네요;;;
헬프만 보고 해본거라 TBitmap이나 Canvas의 사용에 문제가 있는 것인지도 모르겠습니다;;;
그럼 고수분들의 도움을 기다리겠습니다. ㅠ_ㅠ
추.
상황을 보면 라인의 길이가 2000을 넘어갈 때 오류가 나는것 같습니다.
아마도 메모리 경계를 넘어가는게 아닐까 하고 있습니다요;;;;
|