В библиотеке классов MFC определена еще одна группа классов, позволяющая создавать словари. Словарь представляет собой таблицу из двух колонок, устанавливающую соответствие двух величин. Первая величина представляет ключевое значение и записывается в первую колонку таблицы, а вторая связанное с ней значение, хранящееся во второй колонке. Словарь позволяет добавлять в него пары связанных величин и осуществлять выборку значений по ключевому полю.
Класс | Ключевое поле | Поле, связанное с ключевым |
---|---|---|
CMapPtrToPtr | Указатель типа void | Указатель типа void |
CMapPtrToWord | Указатель типа void | Слово |
CMapStringToOb | Объекты класса CString | Указатели на объекты класса CObject |
CMapStringToPtr | Объекты класса CString | Указатель типа void |
CMapStringToString | Объекты класса CString | Объекты класса CString |
CMapWordToOb | Слово | Указатели на объекты класса CObject |
CMapWordToPtr | Слово | Указатель типа void |
Вы можете создавать словари, имеющие поля любых типов и классов, если воспользуетесь шаблоном CMap. Шаблон CMap наследуется от базового класса CObject. Для построения словарей можно также использовать шаблон CTypedPtrMap. Шаблон CTypedPtrMap не наследуется от базового класса CObject.
Файловая система (класс CFile)
Библиотека MFC включает класс для работы с файловой системой компьютера. Он называется CFile и также наследуется от базового класса CObject. Непосредственно от класса CFile наследуются еще несколько классов – CMemFile, CStdioFile, CSocketFile.
При работе с файловой системой вам может потребоваться получить различную информацию о некотором файле – например, дату создания, размер и т. д. Для хранения этих данных предназначен специальный класс CFileStatus. Класс CFileStatus один из немногих классов, которые не наследуются от базового класса CObject.
Контекст отображения (класс CDC)
Для отображения информации в окне или на любом другом устройстве приложение должно получить так называемый контекст отображения. Основные свойства контекста отображения определены в классе CDC. От него наследуется четыре различных класса, представляющие контекст отображения различных устройств (рис. 2.6).
Рис. 2.6. Класс CDC
В следующей таблице приведено краткое описание классов, наследованных от CDC.
Класс | Описание |
---|---|
CClientDC | Контекст отображения, связанный с внутренней областью окна (client area). Для получения контекста конструктор класса вызывает функцию программного интерфейса GetDC, а деструктор – функцию ReleaseDC |
CMetaFileDC | Класс предназначен для работы с метафайлами |
CPaintDC | Конструктор класса CPaintDC для получения контекста отображения вызывает метод CWnd::BeginPaint, деструктор метод CWnd::EndPaint. Объекты данного класса могут использовать только при обработке сообщения WM_PAINT. Это сообщение обычно обрабатывает метод OnPaint |
CWindowDC | Контекст отображения, связанный со всем окном. Для получения контекста конструктор класса вызывает функцию программного интерфейса GetWindowDC, а деструктор – функцию ReleaseDC |
Объекты графического интерфейса (класс CGdiObject)
Для отображения информации используются различные объекты графического интерфейса – GDI объекты. Для каждого из этих объектов библиотека MFC содержит описывающий его класс, наследованный от базового класса CGdiObject (рис. 2.7).
Рис. 2.7. Класс CGdiObject
Класс | Описание |
---|---|
CBitmap | Растровое изображение bitmap |
CBrush | Кисть |
CFont | Шрифт |
CPalette | Палитра цветов |
CPen | Перо |
CRgn | Область внутри окна |
Меню (класс CMenu)
Практически каждое приложение имеет собственное меню. Оно как правило отображается в верхней части главного окна приложения. Для управления меню в состав MFC включен специальный класс CMenu, наследованный непосредственно от базового класса CObject.