임프랍니다.. 오늘의 팁은, 역시 비파툴에서 가져왔습니다.
내용은, 윈도우를 가리지 말고 그냥 스크린 전체를 대상으로 낙서를 하는 방법이죠.
아래 보시면 알겠지만, 이 팁의 핵심은 아주 간단한 데에 있습니다.
그럼 도움되시길 바랍니다.. ^^;;;
제 목:[질문] 어떻게 윈도우에 그림을 그릴까요?
보낸이:신진욱 (지누기 ) 11/04 21:14 조회:13 1/2
──────────────────────────────────────
안녕하세요.. 지누깁니다..
모니터의 스크린에.. XOR로 선을 그엇으면 하는데요..
음.. 그러니까.. 가끔가다가 윈도우 옮겼다가
잔상 남는것 있죠?
그위에 XOR로 선을 그엇으면 하는데..
어떤 방식을 써야할까요?
화면을 캡춰해서 합치는 방법이 아닌..
프로그램이 돌아가는데도.. 선을 그어서..
애니메이션 효과를 내주는 프로그램을 보았는데..
그걸 구현해 보려고 합니다.
어떻게 해야 할까요?
제 목:[답변] 어떻게 윈도우에 그림을 그릴까요?
보낸이:박지훈 (cbuilder) 11/05 08:58 조회:24 1/2
──────────────────────────────────────
임펠리테리입니다.
좀 복잡할텐데.. 일단 제가 드릴수 있는 답변은 드리죠.
스크린 전체의 DC를 받아서 그려주면 됩니다. 스크린의 DC는 GetDC(0); 하면
넘어오구요, DC 관련 그리기 api함수를 그대로 쓰자면 불편한점이 많으니까
빈 캔바스를 하나 만들어서 할당해주고 그대로 그려주면 되겠네요.
그러니까.. 대략 코드는 다음과 같이...
TCanvas *ScreenCanvas = new TCanvas;
ScreenCanvas->Handle = GetDC(0);
ScreenCanvas->MoveTo(0,0);
ScreenCanvas->LineTo(Screen->Width, Screen->Height);
ReleaseDC(0, ScreenCanvas->Handle);
delete ScreenCanvas;
델파이라면,
var
ScreenCanvas: TCanvas;
begin
...
ScreenCanvas := TCanvas.Create;
ScreenCanvas.Handle := GetDC(0);
ScreenCanvas.MoveTo(0,0);
ScreenCanvas.LineTo(Screen.Width, Screen.Height);
ReleaseDC(0, ScreenCanvas.Handle);
ScreenCanvas.Free;
이렇게 하면 화면의 왼쪽상단에서 오른쪽하단으로 보기싫은 빗금이 쫘악~ 그려집니다.
그럼, 도움되시길 바라면서, 이만...