창 개체
MFC는 CWnd 클래스를 제공하여 창의 핸들을 HWND
캡슐화합니다. CWnd
개체는 Windows 창을 나타내는 HWND
와 다른 C++ 창 개체이지만 이를 포함합니다. CWnd
를 사용하여 고유한 자식 창 클래스를 파생시키거나 CWnd
에서 파생된 여러 MFC 클래스 중 하나를 사용합니다. CWnd
클래스는 프레임 창, 대화 상자, 자식 창, 컨트롤 및 컨트롤 막대(예: 도구 모음)를 포함하는 모든 창에 대한 기본 클래스입니다. C++ 창 개체와 HWND 간의 관계를 잘 이해하는 것은 MFC를 사용한 효과적인 프로그래밍에 매우 중요합니다.
MFC에서는 몇 가지 기본 기능 및 창 관리를 제공하지만 CWnd
에서 고유한 클래스를 파생시킬 수 있고 해당 멤버 함수를 사용하여 제공된 기능을 사용자 지정할 수 있습니다. 개체를 생성하고 멤버 만들기 함수를 CWnd
호출 하여 자식 창을 만든 다음 멤버 함수를 사용하여 CWnd
자식 창을 사용자 지정할 수 있습니다. CView에서 파생된 개체(예: 폼 뷰 또는 트리 뷰)를 프레임 창에 포함할 수 있습니다. 또한 CSplitterWnd 클래스에서 제공하는 분할자 창을 통해 문서의 여러 보기를 지원할 수 있습니다.
CWnd
클래스에서 파생된 각 개체에는 Windows 메시지 또는 명령 ID를 고유한 처리기에 매핑할 수 있는 메시지 맵이 포함됩니다.
Windows 프로그래밍에 대한 일반 문서는 CWnd
API를 캡슐화하는 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"(예: 및 OnMouseMove
)으로 OnPaint
시작하는 처리기입니다. 메시지 처리 및 매핑 은 메시지 및 메시지 처리를 자세히 다룹니다. 프레임워크의 창과 특수 목적을 위해 사용자가 직접 만든 창에 정보가 동일하게 적용됩니다.