русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Кнопки и переключатели


Дата добавления: 2013-12-23; просмотров: 1139; Нарушение авторских прав


О Р Г А Н Ы У П Р А В Л Е Н И Я

К органам управления Windows относятся различные виды кнопок, окна-списки, окна-редакторы, строки текста, полосы просмотра и пр. С точки зрения Windows это обычные дочерние окна (родительским окном при этом может быть не только окно диалога, но и перекрывающееся окно).

Взаимодействие между родительским окном (окно диалога) и органами управления осуществляется посредством сообщений. Когда пользователь производит какое-то действие с органом управления (нажимает кнопку «ОК», завершает ввод текста в окно-редактор и т.п.), функции окна-родителя передается сообщение WM_COMMAND. В этом сообщении параметр wParam содержит индекс органа управления как одной из составных частей окна диалога, а параметр lParam - специальную дополнительную информацию.

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

1) Зарегистрировать класс окна.

2) Создать дочернее окно функцией CreateWindow, указав зарегистрированный класс окна.

3) В функцию окна органа управления определить дескриптор дочернего окна при помощи функции GetParent.

4) По тому или иному действию пользователя «уведомлять» родительское окно соответствующими сообщениями при помощи функции SendMessage.

Для органов управления как дочерних окон не требуется регистрировать класс окна - в Windows определены стандартные классы окон - органов управления: «button», «edit», «scrollbar», «listbox» и пр. Эти классы, наряду с родительскими классами окон, рассмотренными ранее, образуют стандартную иерархию окон-объектов Windows, для стандартных органов управления определены также стандартные функции окон.

При использовании стандартных классов Windows процедура создания органа управления упрощается до одной строки: вызова функции CreateWindow с указанием стандартного класса. Стандартные органы управления посылают функции родительского окна стандартные сообщения Windows, определенные в файле windows.h. Для каждого класса органов управления определены свои сообщения, которыми они обмениваются с функцией родительского окна.



Рассмотрим классы органов управления, определенные в Microsoft Windows.

 

 

К простейшим органам управления относятся кнопки и переключатели.

 

Кнопка («Button»)

Обычно используется для осуществления каких-либо немедленных действий, без переключения или включения/выключения различных опций.

 

Переключатели «И» («Check box»)

Используются как переключатели опций «Вкл/Выкл». Характерная их особенность состоит в том, что будучи объединенными в группу, они реализуют логику «И», т.е. на нескольких таких переключателях пользователь может установить любую комбинацию соответствующих опций. Переключатели этого типа могут быть также «трехпозиционными», где третьим состоянием является отключение возможности какого-либо выбора в данный момент.

 

Переключатели «ИЛИ» («Radio button»)

Используются как переключатели опций «Вкл/Выкл». Однако, будучи объединенными в группу, они реализуют логику «ИЛИ», т.е. из нескольких опций пользователь может выбрать одну (ранее сделанный выбор автоматически сбрасывается).

 

Вокруг этих трех основных типов имеется некоторое количество вариаций. Приведем краткое табличное описание стандартных классов кнопок и переключателей, определенных в Microsoft Windows:

 

BS_DEFPUSHBUTTON

Определяет кнопку с жирной рамкой. Этот класс кнопок обычно используется тогда, когда обозначаемое действие является действием по умолчанию (подразумевается). На кнопке может быть выведен любой текст.

BS_PUSHBUTTON

То же, что и BS_DEFPUSHBUTTON, однако, обозначаемое действие не является действием по умолчанию.

BS_CHECKBOX

Этот стиль определяет маленький квадратик, который может иметь два состояния: отмеченное («checked» - квадратик отмечен крестиком) и неотмеченное («unchecked» - квадратик пуст). В момент отметки рамка квадратика выделяется жирной линией.

BS_AUTOCHECKBOX

То же что и BS_CHECKBOX, однако, состояние кнопки при отметке отслеживается автоматически.

BS_RADIOBUTTON

Определяет небольшую круглую кнопку, обозначаемую окружностью, которая может быть отмечена «нажатой» (внутри окружности появляется жирная точка). Справа от кнопки располагается любой текст, обозначающий действие.

BS_AUTORADIOBUTTON

То же что и BS_RADIOBUTTON, но при отметке кнопки пользователем ранее сделанная отметка автоматически снимается, и приложение получает сообщение BN_CLICKED.

BS_3STATE

То же что и BS_CHECKBOX, однако, орган управления имеет три состояния. Два первых (отмечен/не отмечен) остаются, а третье состояние (обозначаемое штриховкой кнопки) используется обычно для отображения того факта, что в настоящий момент обозначаемое кнопкой действие или свойство не действительно.

BS_AUTO3STATE

То же что и BS_3STATE, однако, смена состояний поддерживается автоматически.

BS_OWNERDRAW

Орган управления, определяемый пользователем. Функция родительского окна получает сообщения о действиях пользователя над органом управления. По этим сообщениям пользователь обязан отображать орган управления (при создании окна диалога), инвертировать его (в момент нажатия) и т.п.

BS_USERBUTTON

Стиль, промежуточный между BS_PUSHBUTTON и BS_OWNERDRAW, однако, при выборе пользователем этого органа управления область, где пользователь отображает свою кнопку, автоматически выделяется пунктирной рамкой.

BS_GROUPBOX

Этот стиль определяет не орган управления, а стилевой элемент - автоматически отображаемую тонкую рамку, охватывающую другие органы управления. Тем самым пользователю дается понять, что объекты, расположенные внутри рамки, тесно связаны между собой (обычно это стили BS_CHECKBOX и BS_RADIOBUTTON). В правом верхнем углу рамки может располагаться поясняющий текст.

BS_LEFTTEXT

Этот флаг используется для выравнивания текста по левой стороне кнопок BS_RADIOBUTTON и BS_CHECKBOX. Используется только с этими стилями. В параметре lParam этого сообщения указывается дескриптор органа управления как дочернего окна и код нотификации, служащий для определения того, какое же собственно действие произвел пользователь с кнопкой, а в параметре wParam-идентификатор органа управления.

 

Перечислим стандартные коды нотификации Windows, определенные в файле windows.h:

BN_CLICKED 0

BN_PAINT 1

BN_HILITE 2

BN_UNHILITE 3

BN_DISABLE 4

BN_DOUBLECLICKED 5

 

Коды нотификации могут понадобиться только при работе с кнопками, определяемыми пользователем. При работе со стандартными кнопками используется только код BN_CLICKED и реже BN_DOUBLECLICKED.

При непосредственной работе с кнопкой к ней переходит фокус ввода, т.е. вся нажатия клавиш на клавиатуре направляются функции кнопки. Однако стандартные функции кнопок игнорируют все нажатия клавиш за исключением клавиш пробел, которая имеет тот же эффект , что и нажатие на левую кнопку мыши.

 



<== предыдущая лекция | следующая лекция ==>
Сообщение WM_PAINT | Редактируемые поля


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.