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

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 не создаст окно. Дочернее окно имеет клиентскую область, но не имеет никаких других компонентов, если они не требуются явно. Приложение может потребовать наличия заголовка, системного меню, кнопок свертывания и развертывания, рамки и полос прокрутки для дочернего окна, но дочернее окно не может иметь меню. Если приложение определит дескриптор меню при регистрации класса дочернего окна или при его создании, дескриптор меню будет проигнорирован. 

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