|
패널은 핸들을 가지고 있지 않습니다.
핸들을 가지고 있는 패널을 원하신다면,
제일 간단한 방법으로는 TForm을 동적생성하셔서
Parent를 해당 폼이나 패널 위로 설정해 주시면 됩니다.
그렇지 않은 경우에는, 패널의 갯수가 적다면, PaintBit 같은
것으로 덮어서 처리하시거나, 아니면 Form을 핸들로 두고,
Rect 만 따로 처리해서 캡쳐하는 그런 방식이 있습니다.
cuperido
초록물고기 님이 쓰신 글 :
: 안녕하세요.
: 화면의 콤포넌트를 bmp로 저장하려 합니다.
: 여기서... 콤포넌트가 폼위에 바로 위에 올려져 있다면...
: 아래의 코드 처럼 폼위에 바로 있는 버튼이 위치한 곳의 이미지를 bmp로 저장가능한데..
: 만약 버튼이 폼위의 패널위에 올려져 있었다면.. 이것을 저장하는 방법은 어떻게 되는지요?
: Canvas->Handle 부분을 , 바꿔줘야 할 것 같은데... Panel1->Handle은 안되는 것 같구요..
: 어떻게 하면. 패널위의 콤포넌트를 이미지로 저장할 수 있는지요?
:
: 수고하세요.
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: Graphics::TBitmap *p = new Graphics::TBitmap;
: HWND B = FindWindow ("TForm1", NULL );
: if ( B )
: {
: p->Width = Button1->Width;
: p->Height = Button1->Height;
: p->PixelFormat = pf24bit;
: BitBlt(p->Canvas->Handle,0,0,Button1->Width,Button1->Height,Canvas->Handle ,Button1->Left,Button1->Top,cmSrcCopy);
:
:
: p->SaveToFile("c:\\test.bmp");
: delete p ;
: }
: }
|