Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VC_Lect.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
15 Мб
Скачать
☆

9.4.3.Класс cHtmlView

Если в качестве базового для класса вид выбран класс CHtmlView, то в окне вида можно отображать Html-страницы. Например, на рис.10 показана страница, загруженная с адреса http://www.msdn.microsoft.com/visualc/. Опять же в качестве примера см. проект Ex37a, прилагаемый к работе [1].

Рис.10. MDI-приложение с окном вид, являющимся наследником класса CHtmlView

9.4.4.Класс cListView

Пример использования этого класса в качестве базового для класса вид приведен на рис. 11. В качестве примера см. проект RowList, входящий в состав примеров (samples) MSDN для Visual Studio 6.0.

Рис.11. Приложение с окном вид, являющимся наследником класса CListView

9.4.5.Класс cRichEditView

Пример использования этого класса в качестве базового для класса вид приведен на рис. 12. В качестве примера см. проект WordPad, входящий в состав примеров (samples) MSDN для Visual Studio 6.0.

Рис.12. Приложение с окном вид, являющимся наследником класса CRichEditView

9.4.6.Класс cScrollView

Класс CScrollView отличается от класса CView только тем, что инкапсулирует скроллинг – полосы прокрутки. Пример использования этого класса в качестве базового для класса вид приведен на рис. 13. Конечно, можно и самостоятельно добавить к классу CView функции обработки сообщений OnHScroll и OnVScroll, но класс CScrollView их уже инкапсулирует и, кроме того, обрабатывает сообщения от мыши с колесом. В качестве примера см. проект DibLook, входящий в состав примеров (samples) MSDN для Visual Studio 6.0.

Рис.13. Приложение с окном вид, являющимся наследником класса CScrollView

9.4.7.Класс cTreeView

Класс CTreeView является наследником класса CCtrlView, который в свою очередь наследует класс CView. Пример использования этого класса в качестве базового для класса вид приведен на рис. 14. В качестве примера см. проект DaoView, входящий в состав примеров (samples) MSDN для Visual Studio 6.0.

Рис.14. Приложение с окном вид, являющимся наследником класса CTreeView

9.5.Примеры приложений для MVS-2005

Эти примеры взяты из MSDN-2005.

9.5.1.Пример ViewEx – окна с разделителями

Это приложение иллюстрирует создание окон вида с разделителями (splitter) на этапе выполнения приложения. Класс документа весьма примитивен: он сохраняет только текст и цвет. На рис. 15. показано одно из возможных состояний приложения ViewEx.

Рис. 15. Окно приложения ViewEx

9.5.2.Пример SnapVw – страница свойств

Этот пример демонстрирует технику использования страницы свойств в классе CFormView. Рамка дочернего окна приложения с многодокументным интерфейсом (MDI) используется вместо вместо property sheet, которая может содержать кнопки OK, Cancel и Apply.

Рис. 16. Окно приложения SnapVW

9.5.3.Пример DockTool – панели инструментов

Иллюстрирует использование панелей инструментов: создание, перемещение, стыковка, отображение, прятание и т.д. Экземпляры классов панелей создаются и настраиваются в методе ainFrame::OnCreate(). В методе CMainFrame::OnClose() сохраняются текущие настройки приложения в файле инициализации.

Рис. 17. Окно приложения DockTool

10. Консольные приложения Windows

10.1.Основные понятия

Этот материал взят из MSDN (см. раздел Consoles and Character-Mode Support)

Консоль (console) предоставляет высокоуровневую поддержку простых приложений, работающих в текстовом (а не в графическом) режиме, которые взаимодействуют с пользователем посредством функций, обеспечивающих ввод из стандартного ввода и вывод в стандартный вывод или стандартный вывод ошибок (standard output or standard error). Консоли также предоставляют современную низкоуровневую поддержку, которая обеспечивает прямой доступ к буферу консоли и позволяет приложениям получать расширенную входную информацию, например, ввод от мыши.

Консоль представляет собой интерфейс, который обеспечивает ввод/вывод для символьных приложений (character-mode applications – приложения, работающие в текстовом режиме).

Консоль имеет один буфер ввода (input buffer) и один или несколько дисплейных буферов (screen buffers). Буфер ввода содержит очередь записей (input records), каждая из которых содержит информацию о событии ввода (input event). Очередь ввода всегда включает события нажатия и отпускания клавиши (key-press and key-release events). Очередь ввода может также включать события от мыши (перемещение мыши, нажатие и отпускание ее клавиш) и события, вызванные воздействиями пользователя на размер активного дисплейного буфера (active screen buffer). Дисплейный буфер представляет собой двумерный массив символов и их атрибутов цвета для вывода в консольное окно.

Консольные функции предоставляют различные уровни доступа к собственно консоли. Высокоуровневые функции ввода/вывода позволяют приложениям читать из стандартного ввода данные, поступающие от клавиатуры и сохраняемые в буфере ввода консоли. Эти функции также позволяют приложению записывать данные в стандартный вывод или стандартный вывод сообщений об ошибках (standard error) для их отображения в дисплейном буфере консоли (in the console's screen buffer). Высокоуровневые функции также поддерживают перенаправление стандартных дескрипторов и управление режимами консоли. Низкоуровневые функции позволяют приложениям получать полную информацию о событиях, поступающих от клавиатуры и мыши, а также о событиях, вызванных взаимодействиями пользователя с консольным окном (например, изменение атрибутов шрифтов). Низкоуровневые функции предоставляют приложениям больший контроль по управлению выводом на экран.

Возможные действия пользователя иллюстрирует рис.1, на котором отображена вкладка «Расположение» окна «Свойства», которое можно вызвать из системного меню любого консольного приложения. Посредством этого окна пользователь может управлять многими параметрами окна консольного приложения, в частности, числом символов в окне и числом строк (ширина и высота окна).

Рис. 1. Тема системного меню «Свойства» консольного приложения

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]