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

C++빌더 Q&A
C++Builder Programming Q&A
[59063] Re:c++빌더로 만들어진 프로그램의 핸들을 findwindow로 찾으면
장성호 [nasilso] 1942 읽음    2009-11-11 16:51
정상입니다.

C++Builder뿐만 아니라 Delphi 도 마찬가지 입니다.

VCL 로 만들어서 그렇습니다.

음..

VCL에서는
Applicaiton->Handle이 실제적 메인윈도우 핸들입니다.

하지만 보통은 화면에 보이지 않죠

화면에 보이는 메인폼은  Application->MainForm->Handle 이구요

특별히 조작하지 않은 경우
델파이니 CBuilder 또는 그걸로 만든 어플리케이션의 작업표시줄 버튼의 팝업 메뉴를 보면
3개 나옵니다.

하지만 메인폼의 좌측상단을 클릭하면 6개 나오죠

VCL에서는 Applicaiton->Handle의 시스템 메뉴를 3개 삭제 해서 그렇습니다.

작업표시줄에 보이는 버튼과 메인폼이 결국 다른놈이죠

하지만 VCL에서 Application->Handle과 Application->MainForm->Handle 에 중요한 메세지가
유기적으로 잘 연결되어있어 하나의 윈도우인것처럼 동작합니다.

VCL에서 생성되는 모든 Form의 WndParent 는 Application->Handle로 만들어서
편리하게 쓰려구 그렇게 만든것 같습니다.

작업표시줄에 버튼이 Application->MainForm->Handle 이 되도록 하는 기능이
Delphi7 이후에 추가되어있구요

어떤 윈도우 어플리케이션이 델파이(또는 CBuilder)로 만들었는지 간단히 확인해 보는 방법은
작업표시줄 버튼의 팝업메뉴의 갯수를 보면 쉬 알수 있죠
(100%정확한것은 아니지만 )


그럼..

Gromit 님이 쓰신 글 :
: 다른 프로그램의 핸들을 찾아서 창을 이동 하려고합니다.
:
: 그런데 c++빌더로 만들어진 프로그램의 핸들을 findwindow로 찾으면 2개가 나옵니다.
:
: 첫 핸들은 검은색배경에 제목표시줄만 달랑 나와있구요.
: 다른 핸들은 정상적 프로그램의 핸들입니다.
:
: 원래 정상인가요?  검은색만 달랑나와있는 첫 핸들을 움직이면 윈도우가 분리(?)되서 따로노는데
: 이상하게 c++빌더로 만들어진 프로그램만 2개가 나오더군요.
:
: 어떻게 된건지 아는분 계신가요??
: 잘못된핸들을 피해서 정상적 프로그램의 핸들만 가져올수있는 방법을 알고싶습니다.

+ -

관련 글 리스트
59062 c++빌더로 만들어진 프로그램의 핸들을 findwindow로 찾으면 Gromit 1647 2009/11/11
59063     Re:c++빌더로 만들어진 프로그램의 핸들을 findwindow로 찾으면 장성호 1942 2009/11/11
59064         Re:Re:c++빌더로 만들어진 프로그램의 핸들을 findwindow로 찾으면 Gromit 1572 2009/11/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.