Читайте также:
|
|
Оконные классы – это шаблоны, хранящие информацию о свойствах окна. Среди этих свойств – начальные размеры окна, его пиктограмма, курсор и меню. Вероятно, самое главное свойство – это адрес функции, называемой оконной процедурой. Приложение обычно выполняет обработку полученных сообщений с помощью вызова функции DispatchMessage из Win API. Функция DispatchMessage, в свою очередь, вызывает соответствующую оконную процедуру. Адрес оконной процедуры при этом извлекается из оконного класса окна, которому послано сообщение. Именно оконная процедура выполняет обработку всех сообщений, посылаемых окну. В Windows есть много стандартных оконных классов, например, стандартные элементы управления вроде кнопок (класс Button) и строк ввода (класс Edit).
Для регистрации новых оконных классов предназначена функция RegisterClass. Т.о. программист может реализовать окно с поведением, которого нет ни у одного из стандартных оконных классов. Например, именно так обычно реализуется главное окно приложения и выполняется регистрация пиктограммы и главного меню приложения.
Windows позволяет создавать подклассы и суперклассы для существующих
оконных классов. При создании подкласса выполняется замена оконной процедуры класса. Это делается с помощью функции SetWindowLong (подкласс экземпляра) или SetClassLong (глобальный подкласс). Различие между двумя функциями в том, что в первом случае изменяется поведение только одного экземпляра окна, а во втором случае – поведение всех окон данного класса (в пределах приложения). При создании суперкласса новый класс основывается на существующем, и запоминается адрес старой оконной процедуры. Для создания суперкласса приложение получает информацию о существующем классе с помощью функции GetClassInfo, запоминает адрес старой оконной процедуры, затем модифицирует полученную
структуру WNDCLASS и использует ее при вызове RegisterClass. Сообщения, не обрабатываемые новой оконной процедурой, должны передаваться в старую. Используемые термины похожи на термины объектно-ориентированного программирования, но отличаются от них по смыслу. Не надо путать оконный класс с понятием класса в Си++ (например, с классами библиотеки MFC). Понятие оконного класса было введено в Windows несколькими годами раньше, чем в этой ОС распространились объектно-ориентированные языки.
Сообщение WM_PAINT требует от приложения частично или полностью перерисовать содержимое окна. Большинство приложений перерисовывают только те области окна, которые нуждаются в перерисовке. В нашем случае, для простоты, на каждое сообщение WM_PAINT всегда выполняется вывод всей строки "Hello, World!". Сообщение WM_DESTROY поступает в результате действий пользователя, которые приводят к уничтожению окна приложения. В качестве реакции наше приложение вызывает функцию PostQuitMessage. Т.о. гарантируется, что функция GetMessage в WinMain получит сообщение WM_QUIT и главный цикл обработки сообщений завершится. Сообщения, которые не обрабатываются нашей оконной процедурой, с помощью функции DefWindowProc передаются в оконную процедуру по умолчанию. Эта функция реализует поведение окна приложения и многих компонент его неклиентской области (например, строки заголовка).
/DEF (указание файла определения модуля)
/DEF:filename
Здесь:
filename
Имя файла определения модуля (DEF) для передачи в компоновщик.
Параметр /DEF передает файл определения модуля (.def) в компоновщик. Только DEF-файл можно указать для параметра LINK. Дополнительные сведения о DEF-файлах см. в разделе Файлы определения модулей.
Установка данного параметра компоновщика в среде разработки Visual Studio
1. Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Задание свойств проекта C++.
2. Выберите папку Компоновщик.
3. Выберите страницу свойств Ввод.
4. Измените значение свойства Файл определения модуля.
Чтобы указать DEF-файл из среды разработки, следует добавить его в проект наряду с остальными файлами, а затем указать данный файл в параметре /DEF.
88. Простое приложение и шаблон(???). Рисование эллипса. Рисование сегмента. Рисование сектора. Рисование прямоугольника.
Рисование эллипса
Функция для отображения эллипса имеет те же параметры, поскольку эллипс определяется ограничивающим его прямоугольником:
Дата добавления: 2015-09-03; просмотров: 106 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Схема последовательного технологического процесса | | | Подготовительные работы и допуск к работе |