본문 바로가기

Programming/MFC

다른 윈도우 핸들 얻어오기(FindWindow)

출처 doodog2113님의 블로그 | doodog2113
원문 http://blog.naver.com/doodog2113/40020574753



안녕하세요...


FindWindow()윈도우 함수는 다음과 같이 두가지 방법으로 해당 윈도우의 핸들을 얻어올수 있습니다...


FindWindow("클래스 이름", "타이틀 이름");


소스를 보니 해당 Dialog Box의 윈도우클래스 이름으로 핸들을 얻어오시려고 하는것 같군요...

MFC에서 Dialog Box에는 기본적으로 윈도우클래스명이 들어가지 않습니다...

그래서 강제로 집어 넣어줘야 합니다.

강제로 집어 넣는 방법은 몇가지가 있지만....

가장 간단한 방법으로는 resource.rc 파일을 직접 에디트해서 해당 Dialog Box에서


CLASS "클래스이름" // 이런식으로 넣어주면 됩니다...


저렇게 강제로 넣어주면 클래스 이름으로 해당 Dialog Box의 핸들을 얻어올수 있습니다...


FindWindow("클래스 이름", NULL);


그리고 다이얼로그 박스의 타이틀 이름으로 해당 Dialog Box를 찾으시려면...


FindWindow(NULL, "타이틀 이름");


이런식으로 해주면 됩니다...


핸들을 얻어오려고 하는 Dialog Box의 클래스 이름과 타이틀 이름을 확인해보시면 될것 같습니다...


그럼 이만...



CWnd* me = FromHandle(m_hWnd);

이렇게 하면 윈도우 포인터가 나오지요..


CWnd* p = FromHandle(m_edt_val.m_hWnd);

이렇게 하면 컨트롤의 포인터..


그리고 m_hWnd 는 CWnd 클래스가 내부적으로 관리하는 윈도우 핸들이지요.. CWnd 는 HWND의 Wrapper 라고 보면 되니까요..

결국은 그놈이 그놈이지요.

'Programming > MFC' 카테고리의 다른 글

Doc에서 View의 핸들 가져오기  (0) 2006.03.24
윈도우 핸들 얻기  (0) 2006.03.24
Windows DATA type  (0) 2006.03.22
타이틀바  (0) 2006.03.22
CDocument 클래스와 파일 처리  (0) 2006.03.20