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
[50570] 답변 감사합니다.~~(냉무)
무한질주 [01race77] 1498 읽음    2007-09-14 13:36
장성호 님이 쓰신 글 :
: Window Application은 대부분 Parent를 가지고 있습니다.
:
: 보통 프로그램에 Main윈도우는 Parent가 Desktop이 되죠
: Parent가 Desktop인 윈도우는 작업표시줄에 나타나구요
:
: 다시 말해 어떤 윈도우든 (Window Handle을 가진 모든 Control)은 Parnet 설정을 바꿈으로써
: 어디에든 나타낼수 있습니다.
:
: 예를들어 메모장(Notepad.exe)을 현재 프로그램의 Panel에 올리고 싶다면
:
: [과정]
: 1. 대상프로그램의 핸들을 찾습니다.
:      HWND hWnd = FindWindow("","제목없음 - 메모장");
:   
: 2. 찾았으면 SetParent로 메모장의 Parent를 Panel1->Handle로 변경해 줍니다.
:      SetParent(hWnd ,  Panel1->Handle) ;
:
:
: [샘플]
: 아래와 같이하면 바탕화면이 내 폼안에 들어와 버립니다.
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:     HWND hWnd = FindWindow("Progman", NULL);
:     HWND hWndLView = FindWindowEx(hWnd, 0, "SHELLDLL_DefView", NULL);
:     HWND hWndParent = GetParent(hWndLView);// Windows.GetParent(H);  원래 original Parent
:     ::SetParent(hWndParent, this->Handle);       
: }
: //---------------------------------------------------------------------------
:
: 이는 탐색기 프로그램인 explore.exe를 통째로 내 프로그램에 넣는것이  아니라
: 탐색기에서 바탕화면만 내 프로그램에 넣는것입니다.
:
: 위 과정을 반복하면 여러개 프로그램을 내 프로그램에  넣는것도 문제 없겠죠
:
: 그럼
:
: 무한질주 님이 쓰신 글 :
: : 제가 ..
: :
: : 프로그램안에서 다른 프로그램 보여주려고 하고 있습니다.
: :
: : 버튼을 클릭하면 폼안에 특정프로그램이 Child윈도우로 생성이 되는 것이지요..
: :
: : 또 버튼을 클릭하면 또 생기고... 이런식으로 같은 프로그램으로 여러개의 Child윈도우로 생성시켜보려고 합니다.
: :
: : 어떤식으로 해야할까요?

+ -

관련 글 리스트
50565 한프로그램안에서 다른 프로그램 보여주기... 무한질주 1191 2007/09/14
50567     Re:한프로그램안에서 다른 프로그램 보여주기... 장성호 2205 2007/09/14
50570         답변 감사합니다.~~(냉무) 무한질주 1498 2007/09/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.