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
[42578] Re:Re:Re:Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질문입니다]
라이포 [raii44] 882 읽음    2005-11-21 22:15
civilian,안영제님의 빠른 답변 감사합니다. 그런데 제가 궁금한 것은 SendMessage를 이용하지 않고 ShowWindow와
같은 단일 함수에서 처리하는 어떠한 방법을 기대했습니다. 저도 SendMessage와 같은 방법을 많이 쓰고 있긴 합니다.
혹시 SendMessage와 같은 방법말고 다른 방법이 없을까요? 

civilian,안영제 님이 쓰신 글 :
: 약간 보충글을 다는 사이에.....
:
: Application->OnMessage에 대한 이벤트 핸들러를 하나 만드시면 될 듯 합니다.
: 적당한 메세지를 하나 정의한후(ex. WM_USER+???)
: 어플리케이션이 해당 메세지를 수신한 경우 원하는 동작을 처리하도록 만들면 됩니다.
:
: 동작시키는 쪽에서는
:
: SendMessage(Handle, WM_USER+???, 0, 0);
:
: 이런식으로 날리면 되겠죠.

: 라이포 님이 쓰신 글 :
: : 답변 감사합니다. 그렇다면 "나"의경우 어떻게 폼을 띄우면 될까요? 궁금합니다. SendMessage같은방법말고...
: :
: : civilian,안영제 님이 쓰신 글 :
: : : 찾은 핸들값이 다르기 때문입니다.
: : :
: : : 가.의 방법은 어플리케이션의 메인폼 핸들을 되돌리지만
: : : 나.의 경우는 어플리케이션의 핸들을 되돌리기 때문입니다.
: : :
: : : 라이포 님이 쓰신 글 :
: : : : void __fastcall TAform::SpeedButton1Click(TObject *Sender)
: : : : {
: : : :
: : : :     HWND hWnd = FindWindow(NULL, "B프로그램캡션");          // 캡션으로 찾을경우---"가"방법
: : : :     HWND hWnd = FindWindow(NULL, "B프로그램실행이름");   // 이름으로 찾을경우---"나"방법
: : : :     if (hWnd == NULL)
: : : :     {
: : : :         AnsiString slExe = ExtractFilePath(Application->ExeName) + "B프로로그램실행이름.exe";
: : : :         ShellExecute(NULL, "open", slExe.c_str(), NULL, NULL, SW_RESTORE);
: : : :     }
: : : :     else
: : : :     {
: : : :
: : : :         ShowWindow(hWnd, SW_SHOWDEFAULT);
: : : :         SetForegroundWindow(hWnd);
: : : :
: : : :     }
: : : :
: : : : }
: : : : 현재 B라는 프로그램은  nonVisible상태이며 TrayIcon이 만들어져 있는 상태입니다. 위 소스는 A프로그램의 소스이며
: : : : 위 소스는 A프로그램에서 B프로그램을 활성화 시키고 폼이 보이게 하기위한 소스입니다.
: : : : 위 소스에서 주석을 보시면 방법으로 "가" 또는 "나" 방법이 있습니다.
: : : : 1."가"방법- 캡션으로 핸들값을 찾을 경우
: : : :     위 방법으로 하면 정상적으로 만약 else루틴으로 갈 경우 ShowWindow가 잘 작동합니다.
: : : : 2. "나"방법-이름으로 핸들값을 찾을 경우
: : : :     위 방법으로 하면 핸들값을 찾아서 else루틴으로 갈 경우 ShowWindow가 제대로 작동하지 않습니다.
: : : :     여기서 제대로 작동하지 않는다는 뜻은 하단에 아이콘이 생성되나(TrayIcon말고) 눌러도 폼이 보이지 않는다는겁니다. 이유가 몰까요? ShowWindow의 옵션(SW_SHOWDEFAULT)을 바꾸어서 여러가지로 시도해봐도 마찬가지입니다.
: : : : 고수분들의 많은 답변 기대합니다.

+ -

관련 글 리스트
42563 다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질문입니다] 라이포 1102 2005/11/21
42567     Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질문입니다] civilian,안영제 1329 2005/11/21
42569         Re:Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질문입니다] 라이포 959 2005/11/21
42570             Re:Re:Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질문입니다] civilian,안영제 1032 2005/11/21
42578                 Re:Re:Re:Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질문입니다] 라이포 882 2005/11/21
42579                     Re:Re:Re:Re:Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질문입니다] civilian,안영제 954 2005/11/21
42581                         Re:Re:Re:Re:Re:Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질문입니다 라이포 952 2005/11/21
42583                             Re:Re:Re:Re:Re:Re:Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질문입 civilian,안영제 1165 2005/11/22
42592                                 Re:Re:Re:Re:Re:Re:Re:Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기[질 라이포 979 2005/11/22
42593                                     Re:Re:Re:Re:Re:Re:Re:Re:Re:다른프로그램에서 nonVisible,TrayIcon상태의 어떤 프로그램 보이기 civilian,안영제 1200 2005/11/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.