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
[57071] Re:Z-Order 설정변경 -->자답
큰돌 [] 1442 읽음    2009-06-01 21:02
문의한 질문에 답변을 올립니다.
저도 왜 이렇게 되는지는 잘 모르겠읍니다.
아시는 분은 논리적인 설명을 달아주면 고맙겠읍니다.

이것 저것 델마당과 볼렌드 포럼에 올라와 있는 팁과 강좌를 참고삼아 시도를 해보다가 갑자기 영감이 떠올라 한번 해본건데 성공하였읍니다.

// 시스템 전체에서의 액티브 (부모) 윈도우의 쓰레드 아이디
    hThreadID := GetWindowThreadProcessId((GetForegroundWindow), nil);
// 현재 쓰레드와 연결하기
    AttachThreadInput(GetCurrentThreadID, hThreadID, True);
// 현재 포커스를 가지고 있는 (자식) 윈도우의 핸들
    FocusWnd := GetFocus;
// 쓰레드 연결 끊기
    AttachThreadInput(GetCurrentThreadID, hThreadID, False);

    Windows.SetParent(HanjaDisplayF.Handle, FocusWnd );

위의 5가지 단계를 거치니 성공하였읍니다.
다른 분들은 적절히 시행착오를 거치면 되리라 봅니다.

큰돌 님이 쓰신 글 :
: 델파이로 만든 DLL Library가 있읍니다.
: 이 DLL에는 조그만한 크기의 WinForm(편의상 DLLForm이라 부름)이 내장되어 있고 이 DllForm의 BorderStayle은 bsNone입니다.
: 이 DLL을 MS WORD에서 매크로를 실행하여 Load한 다음 DllForm을 호출하였읍니다.
: 문제는 DllForm의 FormStyle을 fsNormal로 하면 DllForm이 MS WORD에 가려져 버립니다,
: 하지만 FormStyle을fsStayonTop으로 하면 MS WORD에 가려지지는 않지만 MS WORD를 최소화시키고 다른 프로그램을
: 사용하려고 하면 이 DllForm이 항상 최상위로 떠 있어 다른 프로그램을 사용하는데 방해가 됩니다.
: 질문은 어떻게 하면 이 DllForm이 MS WORD에 대해서만 최상위로 될 수 있는 방법이 있느냐 입니다.
: 많은 답변을 기다려 봅니다.

+ -

관련 글 리스트
57045 Z-Order 설정변경 큰돌 1050 2009/06/01
57071     Re:Z-Order 설정변경 -->자답 큰돌 1442 2009/06/01
57052     Re:Z-Order 설정변경 김동욱 1336 2009/06/01
57059         Re:Re:Z-Order 설정변경 큰돌 1228 2009/06/01
57064             Re:Re:Re:Z-Order 설정변경 김동욱 991 2009/06/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.