Объекты окон

MFC предоставляет класс CWnd , чтобы инкапсулировать HWND дескриптор окна. Объект CWnd — это объект окна C++, отличный от HWND объекта, представляющего окно Windows, но содержащий его. Используется CWnd для получения собственных дочерних классов окон или использования одного из многих классов MFC, производных от CWnd. Класс CWnd — это базовый класс для всех окон, включая окна фрейма, диалоговые окна, дочерние окна, элементы управления и панели управления, такие как панели инструментов. Хорошее понимание связи между объектом окна C++ и HWND имеет решающее значение для эффективного программирования с помощью MFC.

MFC предоставляет некоторые функции по умолчанию и управление окнами, но вы можете наследовать собственный класс от CWnd и использовать его функции-члены для настройки предоставленных функций. Дочерние окна можно создать, создав CWnd объект и вызвав ее функцию Create member, а затем настроить дочерние окна с помощью CWnd функций-членов. Объекты, производные от CView, например представления формы или представления дерева, можно внедрить в окно фрейма. Вы можете поддерживать несколько представлений документов с помощью панелей разделения, предоставляемых классом CSplitterWnd.

Каждый объект, производный от класса CWnd , содержит карту сообщений, с помощью которой можно сопоставить сообщения Windows или идентификаторы команд с собственными обработчиками.

Общая литература по программированию для Windows является хорошим ресурсом для обучения использованию CWnd функций-членов, которые инкапсулируют HWND API.

Функции для работы на CWnd

CWnd и его производные классы окон предоставляют конструкторы, деструкторы и функции-члены для инициализации объекта, создания базовых структур Windows и доступа к инкапсулированным HWND. CWnd также предоставляет функции-члены, которые инкапсулируют API Windows для отправки сообщений, доступа к состоянию окна, преобразованию координат, обновлению, прокрутке, доступу к буферу обмена и многим другим задачам. Большинство API управления окнами Windows, которые принимают HWND аргумент, инкапсулируются как функции-члены CWnd. Имена функций и их параметров сохраняются в функции-члене CWnd . Дополнительные сведения об API Windows, инкапсулированных по CWndклассу CWnd.

Сообщения CWnd и Windows

Одним из основных целей CWnd является предоставление интерфейса для обработки сообщений Windows, таких как WM_PAINT или WM_MOUSEMOVE. Многие функции-члены CWnd являются обработчиками стандартных сообщений— начиная с идентификатора afx_msg и префикса "Вкл.", например OnPaint и OnMouseMove. Обработка и сопоставление сообщений подробно охватывают сообщения и обработку сообщений. Сведения, которые имеются в равной степени, применяются к окнам платформы и тем, которые вы создаете самостоятельно для специальных целей.

Что вы хотите узнать больше о

См. также

Windows