프로그래밍/공부관련
hwnd, cwnd?
감자1호
2010. 8. 24. 18:29
HWND : 윈도우의 핸들이다. 그냥 숫자일뿐.
윈도우즈 프로그래밍은 기본적으로 메시지 처리 방식이다.
윈도우 : 메시지 큐를 가지는 것. ex) 대화상자, 버튼, 에디트 창. 버튼도 윈도우다. 따라서 메시지를 다른 윈도우에 넘기거나 메시지를 받아서 처리할 수 있다.
메시지 큐 : 윈도우에서 발생하거나 넘겨준 메시지를 저장하고 있는 곳
CWnd : MFC 클래스. 윈도우의 거의 모든 API 함수들이 들어있다. 멤버변수로 윈도우 핸들을 가지고 있다. 따라서 CWnd를 상속한 클래스는 모두 윈도우로 볼 수 있다.
예제)
1. HWND로 CWnd 가져오기
CWnd* pWnd = CWnd::FromHandle(HWND);
2. CWnd로 HWND 가져오기
HWND hWnd = pWnd->m_hWnd;
[출처] HWND와 CWND 차이|작성자 우주선