это не только прямоугольная область
Однако, окно - это не только прямоугольная область экрана для ввода и вывода. Окно является основным системным объектом, обеспечивающим взаимодействие приложения с пользователем, другими приложениями и самой операционной системой. Как и другие объекты, окно принадлежит определенному классу, который называется классом окна, имеет свои свойства, не все из которых находят непосредственное графическое отражение на экране, а также специальную функцию, которая, называется главной процедурой окна.
Класс окна представляет собой набор атрибутов, которые система использует в качестве шаблона при создании окна. Сюда относятся такие внешние атрибуты окна, как значок, форма курсора, фон окна, меню окна по умолчанию, а также набор стилей, называемых стилями класса окна и определяющих наиболее общие особенности поведения и отображения окна. Все эти атрибуты хранятся в специальной структуре WNDCLASSEX.
Каждый класс окна имеет связанную с ним процедуру окна, которую разделяют все окна одного класса. Процедура окна обрабатывает сообщения для всех окон данного класса и тем самым контролирует их поведение и отображение.
Каждое окно имеет также свою внутреннюю структуру CREATESTRUCT, которая заполняется во время создания окна с помощью функции CreateWindowExA. Это такие атрибуты окна, как его расположение и размеры, название, меню, отношения владения-подчинения с другими окнами, а также набор индивидуальных стилей, определяющих конкретный тип окна.
Рассмотрим функцию CreateWindowExA подробнее. Эта функция из модуля User32.dll принимает аж целых 12 параметров, которые должны быть размещены в стеке в следующем порядке:
- адрес переменной, в которой находится дополнительное значение для передачи некоторым типам окон. Если окну не требуется дополнительное значение, этот параметр равен нулю;
- описатель экземпляра приложения, которому принадлежит окно. Это значение может быть получено с помощью функции GetModuleHandleA из модуля Kernel32.dll;
- в зависимости от стиля окна, этот параметр является либо идентификатором дочернего окна, либо описателем меню. Если создаваемое окно - дочернее, это идентификатор окна; если нет - описатель меню окна (при отсутствии меню параметр равен нулю);
- описатель родительского окна или окна-владельца (если окно самостоятельное, параметр равен нулю);
- высота окна в пикселах;
- ширина окна в пикселах;
- начальная вертикальная координата окна. Если окно дочернее, вертикальное положение отсчитывается от левого верхнего угла клиентской области родительского окна; если окно самостоятельное - от левого верхнего угла экрана;
- начальная горизонтальная координата окна. Аналогично вертикальной координате, за точку отсчета для дочерних окон принимается левый верхний угол клиентской области родительского окна, для самостоятельных окон - левый верхний угол экрана;
- флаги, указывающие стиль окна;
- адрес строки с именем окна;
- адрес строки с именем класса окна;
- флаги, указывающие расширенный стиль окна.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий