Стили кнопок
Параметр flStyle определяет стиль класса окна, влияющий на поведение и внешний вид окон, создаваемых на базе этого класса. Для кнопок и переключателей помимо стилей с префиксом WS_, описанных в начале нашей книги, можно указывать следующие стили (некоторые стили можно комбинировать при помощи логической операции ИЛИ, о чем будет сказано дополнительно):
Стиль | Описание |
BS_PUSHBUTTON | Кнопка в виде прямоугольника с текстом. Когда пользователь нажимает эту кнопку, родительское окно получает извещающее сообщение |
BS_DEFAULT | Кнопка с толстой рамкой. В диалоговых панелях вместо этой кнопки пользователь может нажать клавишу <Enter>. Этот стиль можно использовать вместе со стилями BS_PUSHBUTTON и BS_USERBUTTON |
BS_CHECKBOX | Переключатель квадратной формы, который может находиться в одном из двух состояний: включенном (внутри квадрата отображается галочка) или выключенном (без галочки). Справа от квадрата находится подпись (текст заголовка) |
BS_AUTOCHECKBOX | Аналогично предыдущему, но внешний вид при переключении изменяется автоматически |
BS_RADIOBUTTON | Аналогично BS_CHECKBOX, но переключатель имеет круглую форму. Во включенном состоянии внутри круга отображается жирная точка |
BS_AUTORADIOBUTTON | Аналогично предыдущему, но внешний вид при переключении изменяется автоматически. Обычно используется в диалоговых панелях в составе группы аналогичных переключателей, при этом во время включения одного из переключателей остальные автоматически выключаются |
BS_AUTOSIZE | Размер кнопки, создаваемой с этим стилем, изменяется автоматически таким образом, чтобы надпись всегда помещалась на ней целиком. При создании окна с этим стилем функции WinCreateWindow в качестве параметров cx или cy можно указывать значение -1 |
BS_3STATE | Прямоугольная кнопка с автоматическим переключением, которая может находиться в трех состояниях: внутри квадрата отображается маленький черный квадратик (включен), черный квадратик не отображается (выключен), переключатель отображается серым цветом (переключатель не активен) |
BS_AUTO3STATE | Аналогично предыдущему, но изображение изменяется автоматически при переключении |
BS_BITMAP | Вместо текста на поверхности кнопки рисуется растровое изображение. Этот стиль можно использовать только вместе со стилем BS_PUSHBUTTON |
BS_HELP | Когда пользователь нажимает кнопку с этим стилем, родительское окно вместо сообщения WM_COMMAND получает сообщение с кодом WM_HELP . Этот стиль можно использовать вместе со стилем BS_PUSHBUTTON |
BS_ICON | Вместо текста на поверхности кнопки рисуется пиктограмма. Этот стиль можно использовать только вместе со стилем BS_PUSHBUTTON |
BS_MINIICON | Аналогично предыдущему, но на поверхности кнопки можно размещать пиктограммы уменьшенного размера |
BS_NOBORDER | Кнопка не имеет рамки. Этот стиль можно использовать только вместе со стилем BS_PUSHBUTTON |
BS_NOCURSORSELECT | Круглая кнопка, которая не выбирается после получения фокуса ввода в результате использования клавиш перемещения курсора или табуляции (стиль используется в диалоговых панелях) . Этот стиль можно использовать только вместе со стилем BS_AUTORADIOBUTTON |
BS_NOPOINTERFOCUS | Круглая кнопка, которая не выбирается щелчком мыши. В результате курсор останется в том поле, в котором требуется ввести информацию (стиль используется в диалоговых панелях). Этот стиль можно комбинировать со всеми другими стилями |
BS_SYSCOMMAND | Вместо сообщения WM_COMMAND кнопка с этим стилем посылает родительскому окну извещающее сообщение WM_SYSCOMMAND . Этот стиль можно использовать только вместе со стилем BS_PUSHBUTTON |
BS_TEXT | На поверхности кнопки может отображаться текст вместе с пиктограммой (обычной или уменьшенной), или с растровым изображением. Этот стиль можно использовать вместе со стилем BS_PUSHBUTTON. Кроме того, необходимо указать стили BS_BITMAP, BS_ICON или BS_MINIICON |
BS_USERBUTTON | Внешний вид кнопки определяется приложением |