Основа структуры приложения (класс CCmdTarget)
Основа структуры приложения (класс CCmdTarget)
Непосредственно от класса CObject наследуются ряд классов, которые сами являются базовыми для остальных классов MFC. В первую очередь это класс CCmdTarget, представляющий основу структуры любого приложения. Основной особенностью класса CCmdTarget и классов, наследованных от него является то, что объекты этих классов могут получать от операционной системы сообщения и обрабатывать их.
Структура классов, связанных с классом CCmdTarget представлена на рисунке 2.2.
Рис. 2.2. Класс CCmdTarget
Подзадачи приложения (классы CWinThread и CWinApp)
От класса CCmdTarget наследуется класс CWinThread, представляющий подзадачи приложения. Простые приложения, которые мы будем рассматривать в первой книге, посвященной MFC, имеют только одну подзадачу. Эта подзадача, называемая главной, представляется классом CWinApp, наследованным от класса CWinThread.
Документ приложения (класс CDocument)
Большинство приложений работают с данными или документами, хранимыми на диске в отдельных файлах. Класс CDocument, наследованный от базового класса CCmdTarget, служит для представления документов приложения.
Шаблон документов (классы CDocTemplate, CSingleDocTemplate и CMultiDocTemplate)
Еще один важный класс, наследуемый от CCmdTarget, называется CDocTemplate. От этого класса наследуются два класса CSingleDocTemplate и CMultiDocTemplate. Все эти классы предназначены для синхронизации и управления основными объектами представляющими приложение – окнами, документами и используемыми ими ресурсами.
Окна (класс CWnd)
Практически все приложения имеют пользовательский интерфейс, построенный на основе окон. Это может быть диалоговая панель, одно окно или несколько окон, связанных вместе. Основные свойства окон представлены классом CWnd , наследованным от класса CCmdTarget.
Вы очень редко будете создавать объекты класса CWnd. Класс CWnd сам является базовым классом для большого количества классов, представляющих разнообразные окна. На рисунке 2.3 представлена только небольшая часть дерева наследования класса CWnd.
Рис. 2.3. Класс CWnd
Перечислим классы, наследованные от базового класса CWnd.
• Обрамляющие окна (класс CFrameWnd)
Класс CFrameWnd представляет окна, выступающие в роли обрамляющих окон (frame window), в том числе главные окна приложения. От этого класса также наследуются классы CMDIChildWnd и CMDIFrameWnd, используемые для отображения окон многооконного интерфейса MDI. Класс CMDIFrameWnd представляет главное окно приложения MDI, а класс CMDIChildWnd – его дочерние окна MDI. Класс CMiniFrameWnd применяется для отображения окон уменьшенного размера. Такие окна обычно используются для отображения в них панели управления.
• Окна органов управления
В предыдущих томах серии “Библиотека системного программиста” мы рассказывали о том, что существует ряд органов управления, встроенных в операционную систему. К ним относятся кнопки, полосы прокрутки, редакторы текста, переключатели и т. д.
Для работы с этими органами управления в библиотеке MFC предусмотрены специальные классы, наследованные непосредственно от класса CWnd.
Класс Орган управления CAnimateCtrl Используется для отображения видеоинформации CBitmapButton Кнопка с рисунком CButton Кнопка CComboBox Список с окном редактирования CEdit Поле редактирования CHeaderCtrl Заголовок для таблицы CHotKeyCtrl Предназначен для ввода комбинации клавиш акселераторов CListBox Список CListCrtl Может использоваться для отображения списка пиктограмм CProgressCtrl Линейный индикатор CPropertySheet Блокнот. Может состоять из нескольких страниц CRichEditCtrl Окно редактирования, в котором можно редактировать форматированный текст CScrollBar Полоса просмотра CSliderCtrl Движок CSpinButtonCtrl Обычно используется для увеличения или уменьшения значения какого-нибудь параметра CStatic Статический орган управления CTabCtrl Набор “закладок” CToolBarCtrl Панель управления CToolTipCtrl Маленькое окно содержащее строку текста CTreeCtrl Орган управления, который позволяет просматривать иерархические структуры данных• Управляющие панели (классы CControlBar, CStatusBar, CDialogBar)
Класс CControlBar и классы, наследуемые от него, предназначены для создания управляющих панелей. Такие панели могут содержать различные органы управления и отображаются как правило в верхней или нижней части главного окна приложения.
Так, класс CStatusBar предназначен для создания панели управления. Эта панель обычно содержит ряд кнопок, дублирующих действие меню приложения.
Класс CStatusBar управляет панелью состояния. Панель состояния отображается в виде полосы в нижней части экрана. В ней приложение может отображать всевозможную информацию, например краткую подсказку о выбранной строке меню.
Большие возможности представляет управляющая панель, созданная на основе класса CDialogBar. Такая панель использует обычный шаблон диалоговой панели, который вы можете разработать в редакторе ресурсов Visual C++.
• Блокнот (класс CPropertySheet)
Класс CPropertySheet представляет блокнот – диалоговую панель, содержащую несколько страниц. Отдельные страницы такого блокнота управляются объектами другого класса – CPropertyPage. Класс CPropertyPage наследуется от базового класс CDialog, который мы рассмотрим ниже.
• Окна просмотра (класс CView и классы наследованные от него)
Большой интерес представляет класс CView и классы, наследуемые от него (рис. 2.4). Эти классы представляют окно просмотра документов приложения. Именно окно просмотра используется для вывода на экран документа, с которым работает приложения. Через это окно пользователь может изменять документ.
Разрабатывая приложение, вы будете наследовать собственные классы просмотра документов либо от базового класса CView, либо от одного из нескольких порожденных классов, определенных в библиотеке MFC.
Классы, наследованные от CCtrlView, используют для отображения документа готовые органы управления. Например, класс CEditView использует орган управления edit (редактор). Более подробно эти классы будут описаны позже, когда мы будем рассказывать о средствах автоматизированного программирования MFC AppWizard и ClassWizard.
Класс CScrollView представляет окно просмотра, которое имеет полосы свертки. В классе определены специальные методы, управляющие полосами просмотра
Класс CFormView позволяет создать окно просмотра документа, основанное на диалоговой панели. От этого класса наследуются еще два класса CRecordView и CDaoRecordView. Эти классы используются для просмотра записей баз данных.
Рис. 2.4. Класс CView
• Диалоговые панели (класс CDialog и классы наследованные от него)
Кроме перечисленных классов от базового класса CWnd наследуются классы, управляющие диалоговыми панелями. Если вы желаете создать диалоговую панель, вы можете наследовать класс от CDialog (рис. 2.5).
Вместе с диалоговыми панелями обычно используется класс CDataExchange. Класс CDataExchange обеспечивает работу процедур обмена данными DDX (Dialog Data Exchange) и проверки данных DDV (Dialog Data Validation) используемых для диалоговых панелей. В отличие от класса CDialog, класс CDataExchange не наследуется от какого-либо другого класса.
Когда вы создаете блокнот, состоящий из нескольких страниц, то каждая такая страница является объектом класса, наследованного от CPropertyPage.
От класса CDialog наследуется ряд классов, представляющих собой стандартные диалоговые панели для выбора шрифта, цвета, вывода документа на печать, поиска в документе определенной последовательности символов, а также поиска и замены одной последовательности символов другой последовательностью.
Чтобы создать стандартный диалог, вы можете просто определить объект соответствующего класса. Дальнейшее управление такой панелью осуществляется методами класса.
Рис. 2.5. Класс CDialog
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
1.1.1. Panda Cloud Antivirus — основа нашей комплексной защиты
1.1.1. Panda Cloud Antivirus — основа нашей комплексной защиты Panda Cloud Antivirus — это революция в области антивирусной защиты. Работа этого антивируса основана на защите компьютера с сервера Panda в режиме реального времени. Panda Cloud Antivirus имеет огромные преимущества по сравнению с
Основа библиотек доступа к InterBase
Основа библиотек доступа к InterBase Какова бы ни была библиотека доступа, для какой бы среды разработки она ни предназначалась, в любом случае основой является InterBase API. InterBase API предоставляет базовый набор функций низкого уровня для работы с базами данных. Таким образом,
Тип структуры
Тип структуры Понятие структуры в CTS также формализовано. Если вы знаете C, вам будет приятно узнать, что эти пользовательские типы "выжили" и в мире .NET (хотя внутренне они ведут себя немного по-иному). Упрощенно говоря, структура - это "облегченный" тип класса с семантикой на
Структуры
Структуры Понятие структуры в языке Си++ значительно расширено. Структура в Си++ обладает всеми возможностями классов. В структуры Си++ можно включать не только элементы данных, но и методы. Вы можете наследовать от структур новые структуры, точно также как вы наследуете
Самый базовый класс MFC (класс CObject)
Самый базовый класс MFC (класс CObject) Подавляющее большинство классов библиотеки MFC наследовано от базового класса CObject, лежащего в основе всей иерархии классов этой библиотеки. Методы и элементы данных класса CObject представляют наиболее общие свойства наследованных из него
Синхронизация задач приложения (класс CSyncObject)
Синхронизация задач приложения (класс CSyncObject) Библиотека MFC позволяет создавать многозадачные приложения. Для синхронизации отдельных задач приложения предусмотрен ряд специальных классов. Все они наследуются от класса CSyncObject , представляющего собой абстрактный класс
Архивный класс (класс CArchive)
Архивный класс (класс CArchive) Класс CArchive используется для сохранения и восстановления состояния объектов в файлах на диске. Перед использованием объекта класса CArchive он должен быть привязан к файлу – объекту класса CFile.Более подробно о процессе сохранения и восстановления
Класс CObject – основной класс MFC
Класс CObject – основной класс MFC Подавляющее большинство классов из библиотеки MFC наследуются от основного класса CObject. Практически все классы, которые используются в ваших приложениях, например CView или CWinApp, унаследованы от класса CObject.Класс CObject обеспечивает наиболее общие
§ 1. Картографическая информация — основа функционирования геоинформационных систем
§ 1. Картографическая информация — основа функционирования геоинформационных систем Процессы управления всегда связаны с переработкой информации. Комплексное использование технических средств получения, передачи, обработки информации и, в первую очередь,
Основа сборки мусора
Основа сборки мусора Рассмотрим работу сборщика мусора.Основной алгоритм включает две фазы: пометка и чистка. Фаза пометки, начиная с оригиналов, рекурсивно следует ссылкам, проходит активную часть структуры и помечает как достижимые все встреченные объекты. Фаза
Прогноз и капитал: экспертно-аналитическая система от IBS как научная основа инвестиций в образование Михаил Ваннах
Прогноз и капитал: экспертно-аналитическая система от IBS как научная основа инвестиций в образование Михаил Ваннах Опубликовано 07 августа 2013 В 1964 году в издательстве Чикагского университета увидела свет работа экономиста Гэри Стенли Бэккера
Прогноз и капитал: экспертно-аналитическая система от IBS как научная основа инвестиций в образование Михаил Ваннах
Прогноз и капитал: экспертно-аналитическая система от IBS как научная основа инвестиций в образование Михаил Ваннах Опубликовано 07 августа 2013 В 1964 году в издательстве Чикагского университета увидела свет работа экономиста Гэри Стенли Бэккера