Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 팁&트릭
Delphi Programming Tip&Tricks
[157] 팁! 전체화면에 낙서하기~
박지훈.임프 [cbuilder] 14456 읽음    1999-06-04 00:00
임프랍니다.. 오늘의 팁은, 역시 비파툴에서 가져왔습니다.
내용은, 윈도우를 가리지 말고 그냥 스크린 전체를 대상으로 낙서를 하는 방법이죠.
아래 보시면 알겠지만, 이 팁의 핵심은 아주 간단한 데에 있습니다.
그럼 도움되시길 바랍니다.. ^^;;;




제  목:[질문] 어떻게 윈도우에 그림을 그릴까요?
보낸이:신진욱  (지누기  )    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;


이렇게 하면 화면의 왼쪽상단에서 오른쪽하단으로 보기싫은 빗금이 쫘악~ 그려집니다.

그럼, 도움되시길 바라면서, 이만...

+ -

관련 글 리스트
157 팁! 전체화면에 낙서하기~ 박지훈.임프 14456 1999/06/04
(링크)     C++Builder Tip'N Tricks > 팁! 전체화면에 낙서하기~
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.