Окна (класс CWnd)
Практически все приложения имеют пользовательский интерфейс, построенный на основе окон. Это может быть диалоговая панель, одно окно или несколько окон, связанных вместе. Основные свойства окон представлены классом CWnd, наследованным от класса CCmdTarget.
Программисты очень редко создают объекты класса CWnd. Класс CWnd сам является базовым классом для большого количества классов, представляющих разнообразные окна. Перечислим классы, наследованные от базового класса CWnd.
Обрамляющие окна (класс CFrameWnd). Класс CFrameWnd представляет окна, выступающие в роли обрамляющих окон, в том числе главные окна приложений. От этого класса также наследуются классы CMDIChildWnd и CMDIFrameWnd, используемые для отображения окон многооконного интерфейса MDI. Класс CMDIFrameWnd представляет главное окно приложения MDI, а класс CMDIChildWnd - его дочерние окна MDI. Класс CMiniFrameWnd применяется для отображения окон уменьшенного размера. Такие окна обычно используются для отображения в них панели управления.
Окна органов управления. Для работы с органами управления (кнопки, полосы прокрутки, редакторы текста и т.д.) в библиотеке MFC предусмотрены специальные классы, наследованные непосредственно от класса CWnd. Перечислим эти классы:
CAnimate - используется для отображения видеоинформации.
CBitmapButton - кнопка с рисунком.
CButton - кнопка.
CComboBox - список с окном редактирования.
CEdit - поле редактирования.
CHeaderCtrl - заголовок для таблицы.
CHotKeyCtrl - предназначен для ввода комбинации клавиш акселераторов.
CListBox - список.
CListCtrl - может использоваться для отображения списка пиктограмм.
CProgressCtrl - линейный индикатор.
CPropertySheet - блокнот. Может состоять из нескольких страниц.
CRichEditControl - окно редактирования, в котором можно редактировать форматированный текст.
CScrollBar - полоса просмотра.
CSliderCtrl - движок.
CSpinButtonCtrl - обычно используется для увеличения или уменьшения значения какого-либо параметра.
CStatic - статический орган управления.
CTabCtrl - набор "закладок".
CToolBarCtrl - панель управления.
CToolTipCtrl - маленькое окно, содержащее строку текста.
CTreeCtrl - орган управления, который позволяет просматривать иерархические структуры данных.
Управляющие панели (классы CControlBar, CToolBar, CStatusBar, CDialogBar). Класс CControlBar и классы, наследуемые от него, предназначены для создания управляющих панелей. Такие панели могут содержать различные органы управления и отображаются, как правило, в верхней или нижней части главного окна приложения.
Так, класс CToolBar предназначен для создания панели управления. Эта панель обычно содержит ряд кнопок, дублирующих действие меню приложения.
Класс CStatusBar управляет панелью состояния. Панель состояния отображается в виде полосы в нижней части окна. В ней приложение может отображать всевозможную информацию, например, краткую подсказку о выбранной строке меню.
Большие возможности представляет управляющая панель, созданная на основе класса CDialogBar. Такая панель использует обычный шаблон диалоговой панели, которую можно разработать в редакторе ресурсов Visual C++.
Окна просмотра (класс CView и классы, наследованные от него). Большой интерес представляют класс CView и классы, наследуемые от него. Эти классы представляют окно просмотра документов приложения. Именно окно просмотра используется для вывода на экран документа, с которым работает приложение. Через это окно пользователь может изменять документ.
Разрабатывая приложение, программисты наследуют собственные классы просмотра документов либо от базового класса CView, либо от одного из нескольких порожденных классов, определенных в библиотеке MFC.
Классы, наследованные от CCtrlView, используют для отображения готовые органы управления. Например, класс CEditView использует орган управления edit (редактор).
Класс CScrollView представляет окно просмотра, которое имеет полосы свертки. В классе определены специальные методы, управляющие полосами просмотра.
Класс CFormView позволяет создать окно просмотра документа, основанное на диалоговой панели.
От этого класса наследуется еще два класса CRecordView и CDaoRecordView. Эти классы используются для просмотра записей баз данных.
Диалоговые панели (класс CDialog и классы, наследованные от него ). От базового класса наследуются классы, управляющие диалоговыми панелями. Если необходимо создать диалоговую панель, можно наследовать класс от CDialog.
Вместе с диалоговыми панелями обычно используется класс CDataExchange. Класс CDataExchange обеспечивает работу процедур обмена данными DDX (Dialog Data Exchange) и проверки данных DDV (Dialog Data Validation), используемых для диалоговых панелей. В отличие от CDialog класс CDataExchange не наследуется от какого-либо другого класса.
От класса CDialog наследуется ряд классов, представляющих собой стандартные диалоговые панели для выбора шрифта, цвета, вывода документа на печать, поиска в документе определенной последовательности символов, а также поиска и замены одной последовательности символов другой последовательностью.
Чтобы создать стандартный диалог, можно просто определить объект соответствующего класса. Дальнейшее управление такой панелью осуществляется методами класса.
Содержание раздела