Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Элементы управления и диалоговые окна



Приложение может создавать несколько типов окон в дополнение к его главному окну, включая элементы управления (controls) и диалоговые окна (dialog box).

Элемент управления (control). - это окно, которое приложение использует для получения информации от пользователя. Приложения также используют элементы управления, чтобы управлять определённой возможностью приложения. К примеру, элементами управления являются кнопки, списки, поля ввода, дополнительные полосы прокрутки, панели, панели инструментов и т.п.

Элементы управления не могут использовать сами по себе и всегда используются с другим окном - обычно, диалоговым окном. Диалоговое окно (dialog box) - это окно, которое содержит один или более элементов управления. Приложение использует диалоговые окна, чтобы запросить у пользователя информацию для выполнения команды. К примеру, приложение, которое имеет команду открытия файла, может показывать диалоговое окно, которое включает в себя элементы управления для указания имени и пути файла. Диалоговые окна обычно не используют те же компоненты окна, что и главные окна приложения. Большинство диалоговых окон имеют заголовок, системное меню, кнопки минимизации/максимизации и закрытия, бордюр (часто - не позволяющий менять размеры окна) и клиентскую область, но они обычно не имеют меню и полос прокрутки. Для получения дополнительной информации - см. Dialog Boxes.

Окно-сообщение (message box) - это специальное диалоговое окно, которое показывает сообщение, предупреждение или сообщение об ошибке пользователю. К примеру, окно-сообщение может использоваться, чтобы сообщить пользователю о невозможности выполнения запрошенной им операции. Для дальнейшей информации - см. Message Boxes.

Оконные атрибуты

Приложение должно указывать следующую информацию при создании окна (за исключением оконного описателя, который создаёт сама функция создания окон):

· Имя класса

· Имя окна

· Стиль окна

· Дополнительный стиль окна

· Положение

· Размер

· Описатель родительского окна или окна-владельца

· Описатель меню или идентификатор дочернего окна

· Описатель экземпляра

· Пользовательские данные

· Оконный описатель

Эти оконные атрибуты описываются ниже.

Имя класса

Каждое окно принадлежит оконному классу. Приложение должно зарегистрировать оконный класс до создания окна этого класса. Оконный класс (window class) определяет большинство аспектов поведения и отображения окна. Главным компонентом оконного класса является оконная процедура (window procedure) - функция обратного вызова, которая принимает весь ввод пользователя и все запросы, отправленные окну. Система предоставляет ей ввод и запросы в виде оконных сообщений (window message).

Имя окна (window name) - это текстовая строка, которая идентифицирует окно для пользователя. Главное окно, диалоговое окно или окно-сообщение обычно показывают это имя в заголовке окна. Элемент управления также может показывать имя окна, в зависимости от своего оконного класса. К примеру, кнопки, поля ввода и статический текст показывают имя окна в прямоугольнике элемента управления. С другой стороны, элементы вроде списков и списков выбора не показывают имена окон.Чтобы изменить имя окна после создания окна, используйте функцию SetWindowText. Используйте функции GetWindowTextLength и GetWindowText для получения имени окна.

Стиль окна

Каждое окно имеет один или несколько оконных стилей. Оконный стиль (window style) - это числовая константа, которая определяет аспект поведения или отображения, не указанный в оконном классе. Приложение обычно устанавливает стили во время создания окна. Но оно также может изменить некоторые стили после создания окна, используя функцию SetWindowLong.

Стили интерпретируются системой и, в некотором роде, оконной процедурой класса окна.

Некоторые оконные стили применимы к любым окнам, но большинство стилей специфичны для оконных классов. Общие стили представлены константами, которые начинаются с префикса WS_; вы можете комбинировать стили, используя оператор or. Стили окна, специфичные для оконного класса, определяют поведение и отображение окон, принадлежащих этому классу. К примеру, класс SCROLLBAR создаёт элемент управления "полоса прокрутки". При этом стили SBS_HORZ и SBS_VERT указывают создаётся ли вертикальная или горизонтальная полоса прокрутки.

Вот описание стилей для некоторых стандартных системных оконных классов:

· Window Styles

· Button Styles

· Combo Box Styles

· Edit Control Styles

· List Box Styles

· Rich Edit Control Styles

· Scroll Bar Control Styles

· Static Control Styles

 

Расширенный стиль окна

Каждое окно опционально может иметь один или несколько дополнительных (расширенных) оконных стилей. Расширенный оконный стиль (extended window style) - это числовая константа, которая определяет аспект окна, не указанный в классе окна или простом стиле окна. Приложение обычно устанавливает расширенные стили во время создания окна. Но оно также может изменить некоторые стили после создания окна, используя функцию SetWindowLong.

Положение

Положение окна определяется как координаты его левого-верхнего угла, измеряемые в пикселях экрана. Эти координаты (иногда называемые оконными координатами (window coordinates)) всегда относительны левого-верхнего угла экрана или (для child окон) - левого-верхнего угла клиентской области родительского окна. К примеру, окно верхнего уровня с координатами (10,10) размещается на 10 пикселей правее левого-верхнего угла экрана и на 10 пикселей ниже его. С другой стороны, child окно с координатами (10,10) размещается на 10 пикселей правее и на 10 пикселей ниже левого-верхнего угла клиентской области родительского окна.

Функция WindowFromPoint ищет окно, занимающее указанную точку на экране, и возвращает его описатель. Аналогичным образом, функция ChildWindowFromPoint и функция ChildWindowFromPointEx возвращают описатель дочернего окна, занимающего указанную точку в родительском окне. Хотя ChildWindowFromPointEx может игнорировать невидимые, отключенные и прозрачные   - ChildWindowFromPoint перечисляет их все.

Размер

Размер окна (высота и ширина) измеряется в пикселях. Окно может иметь нулевую высоту или нулевую ширину. Если приложение задаст нулевые высоту или ширину, то система установит размер в минимально допустимый. Чтобы определить минимально возможный размер окон, приложение может вызвать функцию GetSystemMetrics с флагами SM_CXMIN и SM_CYMIN.

Приложению может потребоваться создать окно с клиентской областью определённого размера (обычно приложение задаёт размеры окна, а клиентская область получается по окну за вычетом размера рамки, заголовка и т.п.). Функция AdjustWindowRect и функция AdjustWindowRectEx могут быть использованы для вычисления нужного размера окна, основываясь на желаемом размере клиентской области окна. Приложение может передать вычисленные значения размера в функцию CreateWindowEx.

Приложение может изменить размер окна на чрезмерно большой; однако ему не следует изменять размер окна на размер, больший экрана. До изменения размеров окна, приложение может узнать размеры экрана, используя функцию GetSystemMetrics с флагами SM_CXSCREEN и SM_CYSCREEN.


Поделиться:



Последнее изменение этой страницы: 2019-04-11; Просмотров: 227; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.)
Главная | Случайная страница | Обратная связь