Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
289-320.doc
Скачиваний:
2
Добавлен:
11.11.2019
Размер:
301.57 Кб
Скачать

Подведение итогов

В этой главе описано, как читать символьные и управляющие клавиши, как отображать курсор и управлять им для отметки места вставки текста, а также рассмотрены следующие общие и технические приемы.

  • Создав обработчик сообщения WN_KEYDOWN, посылаемого при нажатии какой-либо клавиши (кроме системной), можно читать данные, вводимые с клавиатуры. Обработчик передает виртуальный код клавиши, идентифицирующий ее. Обработчик сообщения WM_KEYDOWN предназначен для обработки несимвольных клавиш (например, Home, End, , , ,  или функциональные клавиши).

  • Наиболее удобный способ чтения символьных клавиш (т. е. клавиш, которым соответствуют печатные символы) состоит в создании обработчика сообщения WM_CHAR, передающего фактический код ANSI для печатного символа.

  • В программе, сгенерированной мастером MFC Application Wizard, функции обработки сообщений WM_KEYDOWN, WM_CHAR, WM_SETFOCUS или WM_KILLFOCUS необходимо строить как элементы класса представления, так как эти сообщения передаются окну представления.

  • Чтобы создать и отобразить курсор, необходимо вызвать функции CWnd::CreateSolidCaret() и CWnd::ShowCaret() в обработчике сообщения WM_SETFOCUS, получающем управление при каждом помещении фокуса ввода в окно.

  • Чтобы удалить курсор при потере окном фокуса ввода, необходимо в обработчике сообщения WM_KILLFOCUS вызвать функцию ::DestroyCaret(). Причиной уничтожения курсора является то, что он может быть только в том окне, в котором находится фокус ввода.

  • Чтобы переместить курсор на нужное место в окне представления, следует вызвать функцию CWnd::SetCaretPos().

  • Перед рисованием в окне с помощью функции, отличной от OnDraw() или OnPaint(), необходимо вызвать функцию CWnd::HideCaret(), чтобы скрыть курсор, а после завершения рисования — вызвать функцию CWnd::ShowCaret() для восстановления курсора.

Глава 10. Интерфейс графических устройств

В этой главе рассматриваются вопросы:

  • создание объекта контекста устройства;

  • выбор средств рисования внутри объекта контекста устройства;

  • установка атрибутов рисования для объекта контекста устройства;

  • создание узоров средствами закрашивания пикселов.

Контексты устройств и объекты gdi

В ответ на действия пользователя и другие события, возникающие в системе, Windows-приложения рисуют и перерисовывают содержимое своих окон. Приложения осуществляют вывод графических изображений на аппаратные устройства, используя набор независимых от этих устройств функций. Данные функции составляют библиотеку GDI (Graphic Device Interface — интерфейс графического устройства). Использование GDI освобождает Windows-приложение от необходимости решать проблемы несовместимости устройств и определять их драйверы для различных видеокарт, принтеров и другого оборудования. Напомним, что драйверы устройств представляют собой программы, управляющие их работой. Взаимосвязь между графическими приложениями, GDI, программными драйверами устройств и аппаратными средствами изображена на рис. 10.1.

Рис. 10.1. Взаимосвязь между приложениями, GDI, драйверами и устройствами вывода

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