Объекты окон
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 независимыми
Графические объекты: ручки, кисти, шрифты, растровые изображения, палитры, области