Лекция Архитектура 32-разрядных ос windows 7




Скачать 2.1 Mb.
Название Лекция Архитектура 32-разрядных ос windows 7
страница 9/35
Дата публикации 20.05.2014
Размер 2.1 Mb.
Тип Лекция
literature-edu.ru > Информатика > Лекция
1   ...   5   6   7   8   9   10   11   12   ...   35

5. Рисование содержимого окна


Рисование в окне выполняется с помощью функций модуля GDI. Приложение обычно получает дескриптор контекста устройства, связанного с клиентской областью окна, (например, с помощью функции GetDC) и затем вызывает функции GDI вроде LineTo, Rectangle или TextOut.

5.1 Сообщение WM_PAINT


Сообщение WM_PAINT посылается окну, когда его части нуждаются в перерисовке и при этом в очереди сообщений потока-владельца окна больше нет никаких сообщений. Приложения выполняют обработку WM_PAINT с помощью функций рисования, вызываемых между вызовами функций BeginPaint и EndPaint. Функция BeginPaint возвращает набор параметров в виде структуры PAINTSTRUCT:
typedef struct tagPAINTSTRUCT {

HDC hdc;

BOOL fErase;

RECT rcPaint;

BOOL fRestore;

BOOL fIncUpdate;

BYTE rgbReserved[32];

} PAINTSTRUCT;
BeginPaint при необходимости выполняет очистку фона окна. Для этого приложению посылается синхронное сообщение WM_ERASEBKGND. Функция BeginPaint должна вызываться только для обработки сообщения WM_PAINT. Каждому вызову BeginPaint должен соответствовать последующий вызов EndPaint.

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

5.2 Перерисовка окна по требованию


Функции InvalidateRect и InvalidateRgn позволяют приложению объявить все окно или его части "недействительными". В ответ Windows пошлет приложению сообщение WM_PAINT с требованием перерисовать эти области.

Данные функции обеспечивают приложениям эффективный способ полного или частичного обновления содержимого окон. Вместо немедленной перерисовки окна, приложение может объявить область окна недействительной. При обработке сообщения WM_PAINT приложение может учесть координаты обновляемого участка (переменную rcPaint в структуре PAINTSTRUCT) и перерисовать элементы только внутри этой области.

6. Часто используемые сообщения управления окнами


Типичное окно реагирует не только на WM_PAINT, но и на многие другие сообщения. Некоторые наиболее часто используемые сообщения перечислены ниже.

WM_CREATE. Это первое сообщение, получаемое оконной процедурой вновь созданного окна. Оно посылается до того, как окно станет видимым и перед тем, как функция CreateWindow вернет управление. При обработке этого сообщения приложение может выполнить некоторую инициализацию, необходимую перед тем, как окно станет видимым.

WM_DESTROY. Это сообщение посылается в оконную процедуру окна, которое уже удалено с экрана и вскоре будет уничтожено.

WM_CLOSE. Сообщение посылается в окно как признак того, что оно должно быть закрыто. При обработке по умолчанию в DefWindowProc вызывается DestroyWindow. Приложение может, например, вывести окно подтверждения выхода и вызвать DestroyWindow только если пользователь подтвердит закрытие окна.

WM_QUIT. Это сообщение является требованием завершения приложения и обычно является последним сообщением, которое получает главное окно приложения. При его получении функция GetMessage возвращает FALSE, что в большинстве приложений приводит к завершению цикла обработки сообщений. WM_QUIT генерируется в результате вызова функции PostQuitMessage.

WM_QUERYENDSESSION. Сообщение уведомляет приложение о том, что сеанс работы Windows будет завершен. В ответ приложение может вернуть FALSE, чтобы предотвратить закрытие Windows. После обработки WM_QUERYENDSESSION Windows посылает всем приложениям сообщение WM_ENDSESSION с результатами обработки сообщения WM_QUERYENDSESSION.

WM_ENDSESSION. Сообщение посылается всем приложениям после обработки сообщения WM_QUERYENDSESSION. Оно уведомляет приложения, что Windows будет закрыта или что процесс закрытия был прерван. Если закрытие состоится, то оно может произойти в любой момент после того, как сообщение WM_ENDSESSION будет обработано всеми приложениями. Поэтому важно, чтобы приложения завершали все свои действия для обеспечения безопасного завершения работы.

WM_ACTIVATE. Сообщение уведомляет окно верхнего уровня о том, что оно станет активным или неактивным. При смене активного окна это сообщение сначала посылается окну, которое будет неактивным, а потом окну, которое станет активным.

WM_SHOWWINDOW. Это сообщение извещает окно о том, что оно будет скрыто или показано на экране. Окно м.б. скрыто путем вызова функции ShowWindow или в результате перекрытия другим развернутым окном.

WM_ENABLE. Посылается окну, когда оно разрешается или запрещается. Окно может быть разрешено или запрещено с помощью функции EnableWindow. В запрещенном состоянии окно не получает сообщений мыши и клавиатуры.

WM_MOVE. Извещает окно об изменении его местоположения на экране.

WM_SIZE. Сообщение WM_SIZE уведомляет окно об изменении его размеров.

WM_SETFOCUS. Это сообщение извещает окно о том, что оно получило клавиатурный фокус ввода. Приложение может в ответ на это сообщение включить клавиатурный курсор.

WM_KILLFOCUS. Уведомляет окно о потере клавиатурного фокуса ввода. Если приложение включало курсор, то при обработке WM_KILLFOCUS его надо выключить.

WM_GETTEXT. Сообщение посылается окну как запрос на копирование текста окна в буфер. У большинства окон текст окна – это его заголовок. Для элементов управления вроде кнопок, строк ввода, статического текста и т.п. текст окна – это текст, отображаемый в элементе управления. Это сообщение обычно обрабатывается процедурой по умолчанию DefWindowProc.

WM_SETTEXT. Это сообщение требует, чтобы окно запомнило текст, переданный в буфере, в качестве своего текста. При обработке WM_SETTEXT функцией DefWindowProc выполняется запоминание и отображение текста окна.

1   ...   5   6   7   8   9   10   11   12   ...   35

Похожие:

Лекция Архитектура 32-разрядных ос windows 7 icon Программа по курсу: архитектура ядра ос windows
История семейства Windows nt. Цели и принципы семейства Windows nt. Основные концепции: Native и Win32 api, режимы ядра и пользователя,...
Лекция Архитектура 32-разрядных ос windows 7 icon Лекция I и проблема языка и сознания лекция II 31 слово и его семантическое...
Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного...
Лекция Архитектура 32-разрядных ос windows 7 icon И вычислительной техники системное программное обеспечение. Операционная система Windows Минск
Дается общая характеристика операционной системы Windows, рассматривается пользовательский интерфейс. Дается понятие файловой системы,...
Лекция Архитектура 32-разрядных ос windows 7 icon ОС, она немедленно завершает работу и самопроизвольно перезагружается....
Когда windows xp сталкивается с серьёзной проблемой, ставящей под вопрос дальнейшее правильное функционирование операционной системы...
Лекция Архитектура 32-разрядных ос windows 7 icon Контрольные вопросы по материалам разделов Раздел Круглые столы Архитектура летопись мира
«Архитектура». Оно предназначено для студентов средних специальных учебных заведений архитектурного профиля, а также может использоваться...
Лекция Архитектура 32-разрядных ос windows 7 icon Лекция №1. Введение. Элементы дифференциальной геометрии. 2
Лекция №5. Множества Жюлиа, множество Мандельброта и их компьютерное представление. 18
Лекция Архитектура 32-разрядных ос windows 7 icon Лекция в Дорнахе 22 мая 1920 года
Канта и протестантизма. Эта лекция вызвала негодование среди членов Лиги, культивировавших и признававших под названием монизма вообще...
Лекция Архитектура 32-разрядных ос windows 7 icon Курс лекций Лекция Введение в философскую суицидологию. Лекция Общая...
Открыть, в чём состоит суть суицида, наука не в состоянии (по собственной ограниченной природе) и потому должна обращаться за объяснениями...
Лекция Архитектура 32-разрядных ос windows 7 icon Лекция № Происхождение языка Лекция № Природа, сущность и функции языка
Термины лингвистика и языкознание (термин языковедение архаичен) употребляются как синонимы. Любая наука имеет объект и предмет,...
Лекция Архитектура 32-разрядных ос windows 7 icon «природа жертва войны» (название лекции) Просветительская лекция. Лекция информация
Тема моей лекции «Природа – жертва войны», а основной целью – на основе фактов воздействия войны на природу, взятых из произведений...
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции