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
[23871] Re:이소스좀.....
김형섭 [beat] 841 읽음    2003-01-25 07:53
해당 소스는..
현재 활성화되어있는 윈도창의 핸들을 얻어와서

GetWindowRect(GetForegroundWindow(),&r);

해당 윈도의 화면 캡춰 한 후,
가상의 캔버스를 생성하여 거기에 캡춰한 내용을 전달해놓습니다.
그 후,
Image 컴포넌트의 크기를 캡춰한 크기에 맞도록 설정 해놓고
이미지의 비트맵 캔버스에 가상의 캔버스의 내용을 복사합니다.'

Image1->Picture->Bitmap->Canvas->CopyRect(
:                   Rect(0,0,Image1->Width,Image1->Height),MyCanvas,
:                   Rect(0,0,Image1->Width,Image1->Height));

그후 사용완료된 가상의 캔버스는 메모리에서 해제하고
캡춰에 사용되었던 메모리공간도 비워줍니다...

소스를 그대로 말로 이해되시도록 풀어보았는데..
이해하셨을련지 모르겠네요..
그럼..



기섭 님이 쓰신 글 :
:
:
: void __fastcall TForm1::Image1Click(TObject *Sender)
: {
: HDC dc;
:     RECT r;
:     GetWindowRect(GetForegroundWindow(),&r);
:     dc = GetWindowDC(GetForegroundWindow());
:     Graphics::TCanvas *MyCanvas = new Graphics::TCanvas;
:     MyCanvas->Handle = dc;
:     Image1->Width = r.right - r.left;
:     Image1->Height = r.bottom - r.top;
:     Image1->Picture->Bitmap->Width = r.right - r.left;
:     Image1->Picture->Bitmap->Height = r.bottom - r.top;
:     Image1->Picture->Bitmap->Canvas->CopyRect(
:                   Rect(0,0,Image1->Width,Image1->Height),MyCanvas,
:                   Rect(0,0,Image1->Width,Image1->Height));
:     delete MyCanvas;
:     ReleaseDC(NULL,dc);
:
: 여기돌아다니다가 캡쳐하는 소스를 구했는데... 해석이 안되네여...
: 조금만이라두 해석좀 부탁드립니다..
:

+ -

관련 글 리스트
23869 이소스좀..... 기섭 659 2003/01/25
23871     Re:이소스좀..... 김형섭 841 2003/01/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.