본문 바로가기

프로그래밍/공부관련

hwnd, cwnd?

HWND : 윈도우의 핸들이다. 그냥 숫자일뿐.

 

윈도우즈 프로그래밍은 기본적으로 메시지 처리 방식이다.

 

윈도우 : 메시지 큐를 가지는 것. ex) 대화상자, 버튼, 에디트 창. 버튼도 윈도우다. 따라서 메시지를 다른 윈도우에 넘기거나 메시지를 받아서 처리할 수 있다.

 

메시지 큐 : 윈도우에서 발생하거나 넘겨준 메시지를 저장하고 있는 곳

 

CWnd : MFC 클래스. 윈도우의 거의 모든 API 함수들이 들어있다. 멤버변수로 윈도우 핸들을 가지고 있다. 따라서 CWnd를 상속한 클래스는 모두 윈도우로 볼 수 있다.

 

예제)

1. HWND로 CWnd 가져오기

CWnd* pWnd = CWnd::FromHandle(HWND);

 

2. CWnd로 HWND 가져오기

HWND hWnd = pWnd->m_hWnd;

[출처] HWND와 CWND 차이|작성자 우주선