Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpora_1-10_bez_vosmogo1 (1).docx
Скачиваний:
4
Добавлен:
16.04.2019
Размер:
133.72 Кб
Скачать

8 Стандартні класи вікон у Windows.

Имеются три типа классов окна:

- Системные классы - это класс окна, зарегистрированный системой. Основные классы: Edit, Listbox, ComboBox, ScrollBar, Button, Static;

- Общий (Глобальный) класс приложения - это класс окна, зарегистрированный исполняемой программой или динамически подключаемой библиотекой (DLL), который является доступным всем другим модулям в процессе. Например, ваша .dll может вызвать функцию RegisterClassEx, чтобы зарегистрировать класс окна, который определяет пользовательский орган управления, как общий класс прикладной программы так, чтобы процесс, который загружает .dll, мог создать экземпляры пользовательского органа управления;

- Локальный класс приложения - это любой класс окна, который исполняемая программа или .dll регистрируют для своего единоличного использования. Хотя Вы и можете зарегистрировать любое число локальных классов, обычно регистрируется только один. Этот класс окна поддерживает оконную процедуру главного окна прикладной программы;

9 Реєстрація класів вікон користувача та створення вікон у Windows. При вызове функции winMain система передает ей параметры:

-- hinstance — описатель экземпляра приложения. Это адрес приложения, загруженного в память. В Windows NT/2000 этот адрес для всех приложений имеет одно и то же значение 0x00400000 (4 Мбайт);

-- hPrevlnstance — описатель предыдущего экземпляра приложения. Этот параметр устарел и теперь не используется в приложениях Win32;

-- lpCmdLine — указатель на командную строку. Мы не будем использовать этот параметр;

-- nCmdShow — состояние окна при начальной демонстрации.

Основные атрибуты главного окна приложения задаются в структуре типа WNDCLASSEX. Структура WNDCLASSEX своими полями определяет некий шаблон или модель для создания окон данного класса. В полях структуры вы указываете необходимые атрибуты окна: адрес исполняемого модуля приложения, .адрес оконной процедуры, имя ресурса меню, набор битов для описания стиля окна, местонахождение изображения курсора, значка и т. д. При регистрации класса окон (точнее, переменной типа WNDCLASSEX) операционная система связывает оконную процедуру (WndProc) с приложением. В winMain вы должны зарегистрировать главное окно приложения, остальные же окна, если они нужны, могут быть зарегистрированы и в других местах программы. Адрес заполненной структуры передается в функцию RegisterClassEx, которая говорит Windows, что от нее ожидается, когда окна подобного класса появляются на экране. После регистрации класса главного окна идет вызов функции Initlnstance, которая пытается создать окно (CreateWindow) зарегистрированного класса. Если система нашла класс окна в трех поддерживаемых ею списках зарегистрированных классов окон, то функция CreateWindow возвращает описатель окна (HWND).

10 Создание дочерних окон.

 Дочерние окна. Окна этого типа создаются тогда, когда у приложения уже есть главное окно. Такие окна связаны некоторыми характеристиками с тем окном, из которого они были созданы. Назначение этих окон может быть самым разнообразным, начиная от простого деления родительского окна на области до организации многодокументного интерфейса. Все элементы управления также являются дочерними окнами. Из основных свойств этого типа окон отметим следующие. Дочерние окна никогда не отображаются вне своего родительского окна ни в раскрытом виде, ни в виде пиктограммы — они как бы целиком принадлежат родителю. Располагаются они в родительском окне относительно верхнего левого угла его рабочей области. Более того, при перемещении родительского окна по экрану его дочерние окна перемещаются вместе с ним. И, наконец, дочернее окно никогда не может стать активным. Дочернее окно имеет стиль WS_CHILD и не может покидать клиентскую область своего родительского окна. Для создания дочернего окна Вы должны определить стиль WS_CHILD в функции CreateWindowEx().  Дочернее окно должно иметь родительское окно. Родительское окно может быть перекрывающимся окном, временным окном или даже другим дочернми окном. Вы должны определить родительское окно при вызове функции CreateWindowEx(). Если Вы определите стиль WS_CHILD в CreateWindowEx(), но при этом не определите родительское окно, Windows не создаст окно. Дочернее окно имеет клиентскую область, но не имеет никаких других компонентов, если они не требуются явно. Приложение может потребовать наличия заголовка, системного меню, кнопок свертывания и развертывания, рамки и полос прокрутки для дочернего окна, но дочернее окно не может иметь меню. Если приложение определит дескриптор меню при регистрации класса дочернего окна или при его создании, дескриптор меню будет проигнорирован. 

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