Стили кнопок

Рис. 6.1. Стили кнопок Заметим, что флаги WS_CHILD и WS_VISIBLE, задающие стиль созданного окна, уже рассматривались ранее, а флаг BS_PUSHBUTT0N (где BS - сокращение от Button Sty 1 е) не обрабатывается функцией CreateWi ndow() и не описывается при запросе справки по этой функции. Наличие определяющих стиль кнопки флагов BS__PUSHBUTT0N, BS_AUT0CHECKB0X, BS_CHECKB0X, BS_AUT0RAD10BUTT0N и BS_RADI0BUTT0N проверяется уже самой оконной процедурой, закрепленной за классом Button. Когда при создании окна в оконную процедуру поступает сообщение WM_CREATE, в 1 Pa г am содержится указатель на структуру данных, полями которой дублируются параметры функции CreateWi ndow(). Поэтому оконная процедура может получить и использовать стиль создаваемой кнопки для модификации своей работы. Код, приведенный в листинге 6.11, вместо привычной кнопки создаст показанный на рис. 6.1 переключатель для выбора варианта. При использовании стиля BS_CHECKB0X создается флажок независимого переключателя.

Листинг 6.11

HWND hEdit - CreateWindow("button". "Выбор".

WS_CHILD I WS_VISIBLE | BS_RADI0BUTT0N. 10. 85. 90. 20.
hWnd. (HMENU) 10002. GetModuleHandle(NULL). NULL );

Чтобы в программе определять момент щелчка по созданной кнопке, надо в родительском окне по сообщению WMC0MMAND проверять ее идентификатор в младшем слове wParam. Для созданной выше кнопки-переключателя это реализуется следующим фрагментом кода"opengl4_106.html">⇐ Предыдущая| |Следующая ⇒