"컴포넌트1" 이 무엇인지는 모르겠지만, 그게 원인이라면 소스를 수정하는 수 밖엔 없어 보이는군요.
소스가 없다면 대략 난감...
보푸라기 님이 쓰신 글 :
: 안녕하세요 ... 에휴 골치 덩어리가 있어서요 ㅡㅡ^ 고수 님들의 조언좀 얻고자 합니다. ㅠㅠ
: CopyRect에 대해서 궁금한게 있어서요...
: 전체 영역이 복사 되어버리는 것에 대해 몇번 질문을 올린적이 있었는데요.........질문은 다음과 같았습니다..
:
: 컴퍼넌트1(용도가 PaintBox와 비슷한 컴퍼넌트데요.. 그냥 이렇게 부르겠습니다.)
: Image1컴퍼넌트 두개가 있고요....
:
: 컴퍼넌트1의 보여지는 영역을 Image1.Canvas에 복사하는 것입니다...
:
: 그리고 문제가 되는것은 컴퍼넌트1의 화면영역 위에 걸치는 모든 컨트롤들(다른 윈도우창이나, 심지어 메신저 로그인 표시창 까지도요..)이 함께 복사 된다는 거구요.. 원하는 것은 오직 컴퍼넌트1의 화면만 복사하는 것입니다..(다른 윈도우에 가려있던지 말던지 상관없이요).
: 코딩은 다음과 같이 하였습니다.
:
: Image1.Canvas.CopyRect(영역, 컴퍼넌트1.Canvas, 컴퍼넌트1의 화면영역);
: --> 컴퍼넌트1을 그냥 TImage컴퍼넌트나, 다른 것으로 대체하였을때 문제 없이 되는 걸로 봐서는 ...
: 컴퍼넌트1자체 문제인거 같은데요...
:
: 다른 방식으로 아래 방법도 써봤지만 마찬가지입니다.
: BitBlt(Image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, GetDC(컴퍼넌트1.CanVas.Handle), 0, 0, SRCCOPY);
: --> 이방식 같은 경우에는 GetDC안에 컴퍼넌트1.Canvas.Handle 와 컴퍼넌트1.Handle 두가지 경우를 해봤는데요...
: 전자의 경우 화면영역이 복사가 안돼구요.... 후자의 경우는 CopyRect과 같은 결과가 나옵니다....
:
:
: 죽겠습니다... ㅠㅠ 해결방법좀 부탁드립니다....
: 위 두가지 방법외에 해결할수 있는 방법이 있는지 알고 싶습니다...
:
: 그럼 즐거운 하루 되십시요.. 꾸뻑~~~~~~
|