MFC는 CWnd 클래스를 제공하여 창의 핸들을 HWND
캡슐화합니다.
CWnd
객체는 Windows 창을 나타내는 HWND
와는 별개의 C++ 창 객체이며, 이를 포함하고 있습니다.
CWnd
를 사용하여 고유한 자식 창 클래스를 파생하거나, 파생된 CWnd
여러 MFC 클래스 중 하나를 사용할 수 있습니다. 클래스 CWnd
는 프레임 창, 대화 상자, 자식 창, 컨트롤 및 도구 모음과 같은 컨트롤 막대를 비롯한 모든 창의 기본 클래스입니다.
C++ 창 개체와 HWND 간의 관계를 잘 이해하는 것은 MFC를 사용한 효과적인 프로그래밍에 매우 중요합니다.
MFC는 몇 가지 기본 기능 및 창 관리를 제공하지만 사용자 고유의 클래스 CWnd
를 파생시키고 해당 멤버 함수를 사용하여 제공된 기능을 사용자 지정할 수 있습니다. 개체를 생성CWnd
함수를 호출하여 자식 창을 만든 다음 멤버 함수를 사용하여 CWnd
자식 창을 사용자 지정할 수 있습니다.
CView에서 파생된 개체(예: 폼 뷰 또는 트리 뷰)를 프레임 창에 포함할 수 있습니다. 또한 CSplitterWnd 클래스에서 제공하는 분할자 창을 통해 문서의 여러 보기를 지원할 수 있습니다.
클래스 CWnd
에서 파생된 각 개체에는 Windows 메시지 또는 명령 ID를 사용자 고유의 처리기에 매핑할 수 있는 메시지 맵이 포함되어 있습니다.
Windows용 프로그래밍에 대한 일반적인 문헌은 API를 캡슐화하는 CWnd
멤버 함수를 사용하는 HWND
방법을 학습하는 데 유용한 리소스입니다.
CWnd에서 작동하기 위한 함수
CWnd
및 파생 창 클래스는 생성자, 소멸자 및 멤버 함수를 제공하여 개체를 초기화하고, 기본 Windows 구조를 만들고, 캡슐화된 HWND
개체에 액세스합니다.
CWnd
또한 메시지를 보내고, 창의 상태에 액세스하고, 좌표를 변환하고, 업데이트하고, 스크롤하고, 클립보드에 액세스하는 등의 작업을 위해 Windows API를 캡슐화하는 멤버 함수를 제공합니다. 인수를 사용하는 HWND
대부분의 Windows 창 관리 API는 의 CWnd
멤버 함수로 캡슐화됩니다. 함수의 이름과 해당 매개 변수는 멤버 함수에 CWnd
유지됩니다. 캡슐화된 CWnd
Windows API에 대한 자세한 내용은 CWnd 클래스를 참조하세요.
CWnd 및 Windows 메시지
주요 목적 CWnd
중 하나는 windows 메시지(예: WM_PAINT 또는 WM_MOUSEMOVE)를 처리하기 위한 인터페이스를 제공하는 것입니다. 대부분의 멤버 함수 CWnd
는 표준 메시지의 처리기입니다. 식별자 afx_msg 및 접두사 "On"(예: 및 )으로 OnPaint
OnMouseMove
시작하는 처리기입니다.
메시지 처리 및 매핑 은 메시지 및 메시지 처리를 자세히 다룹니다. 이 정보는 프레임워크의 창과 특수한 용도로 직접 만든 정보에 동일하게 적용됩니다.