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

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[182] [강좌] 장치문맥 설명
타락천사 [rain622] 7340 읽음    2001-08-22 10:10
안녕하세여.. 타락임다..^^

아래글은 델코에 올린 글인데, 내용은 C++ Builder 와 같습니다.

요전의 델코 강의때에 "문맥교환"이란 단어가 여러번 나왔슴다. 그때 "요즈음 문맥교환의 뜻을 아는 사람이 얼마나 될까?" 라는 생각이 들었습니다. 문득 그 생각이 떠올라 글을 적습니다.

제가 초보때 비줠씨를 쓰다가 델파이를 쓰면서 가장 좋았던 것은 델파이5 가 장치 문맥(Device Context, 이하 DC)를 관리해 준다는 거였습니다. 그 편리함에 푸욱 빠졌었죠..^^

장치 문맥(Device Context, DC) 이란, 애플리케이션이 모니터나 프린터, 플로터 같은 출력 장치를 사용할 수 있는 타겟 같은 겁니다. 원도우즈는 DC를 이용해서 애플리케이션과 해당 출력 장치의 드라이버를 연결시킴다. 전통적인 윈도우즈 프로그램의 경우에는 DC를 요청하는 작업과 작업을 끝낸 후 DC를 돌려주는 작업을 직접 처리 해야 함다. 델파이 5는 DC 관리 작업을 TCanvas 클래스에 내포 시켰기 때문에 골치아픈 DC 처리 과정을 개발자가 신경스지 않아도 됨다. 또한 내부적으로 볼 때 TCanvas 는 DC 를 매번 윈도우즈에 돌려주는 대신, 캐시에 일시적으로 저장해 두기 때문에 DC를 얻고 돌려주는 상황이 빈번한 프로그램의 경우, 전체적인 수행성능이 좋아짐다.

생각해 보면, 16비트 윈도우즈와는 달리 Win32 에서는 프로세스마다 GDI 객체를 로컬로 생성해 가지고 있습니다. 델파이와 같이 관리 클래스에 맴버로 포함시키는게 효율적이라는 말이져.

델파이가 비줠씨보다 효율적인 단적인 증거입니다.

즐푸하세여..

[참고] BitBlt() 나 DrawText() 등 대부분의 GDI 함수들은 DC(Device Context)를 인자로 요구함다. DC 는 캔버스의 Handle 속성에 해당함다. 즉, TCanvas.Handle 이 그 캔버스의 DC 임다.

피에수: 왠지 무언가 설명이 빠진거 같은 느낌이 드네여..ㅠㅠ
모 부족한게 있슴, 아시는 분이 설명할 거라 믿!습니다.^^;;

타락천사..

+ -

관련 글 리스트
182 [강좌] 장치문맥 설명 타락천사 7340 2001/08/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.