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
[602] T어플리케이션 윈도 엿보기.
김태선 [jsdkts] 12127 읽음    2006-05-05 12:55
빈 플젝을 선택하고
폼생성 이벤트에 아래와 같이 한줄 코딩.

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    MoveWindow(Application->Handle, 0, 0, Width, Height, true);
}

실행.

그러면 메인 폼 윈도 밑에 하나의 윈도가 더 보입니다.
이것이 T어플리케이션 윈도 TApplication 윈도 창입니다.

C++빌더나 델파이의 경우 메인폼이 동작하기 위해 TForm을 상속받은
TForm1 같은 명칭의 폼이 생성되어 실행되는데,
이 메인폼을 실행해주는 TApplicaton의 싱글톤 인스턴스(단 하나의 객체만 생성하는)인
Application이 있는데, Application이 OS와 메시지를 주고 받으며 전체 어플리케이션을 컨트롤하는 역할을
하기 위해 윈도 창을 하나 가져야 하는데 그게 바로 위에서 확인한 것입니다.

윈도는 구조상 OS와  메시지를 주고 받기 위해서는 반드시 창을 생성해야 하기 때문에,
Application 창을 생성해서 메인폼 창 밑에 착싹 붙여놔 눈에는 안보이게 해 놓은 것입니다.
항상 메인폼과 동작을 같이하게 되어 있습니다.
창만 있을뿐 Paint 부분은 처리하지 않아 창 내부는 바탕화면이 그냥 보입니다.
Application->Handle 이 바로 이 창을 가르키고 있습니다.

어플리케이션 창을 최소화 시키면, Application객체는 OS로부터 최소화 요구를 접수한 뒤
어플리케이션 창과 메인폼을 최소화 시켜버립니다.
다시 Restore 하면 메인폼만 보이는데 어플리케이션창이 뒤이 붙어버려서 그렇습니다.

이런 정도의 기본 구조는 알고 있어야 VCL을 분석할 수 있는데....
ㅡㅡ;a

간만에 적어보는 심심풀이 날팁이었습니다.

+ -

관련 글 리스트
602 T어플리케이션 윈도 엿보기. 김태선 12127 2006/05/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.