На этом шаге мы рассмотрим командные кнопки.
Командные кнопки позволяют пользователю выполнять различные действия: вызывать закрытие окна или диалогового окна, открытие нового окна, начало печати и т. д.
Командные кнопки - это такие элементы управления, которые "вдавливаются" при нажатии на них мышью и возвращаются в первоначальное положение после того, как кнопка мыши отпущена. В последнем случае генерируется событие e_Control с ресурсным идентификатором кнопки, который посылается обработчику событий родительского окна. Если переместить мышь за пределы командной кнопки и при этом держать кнопку мыши нажатой, то командная кнопка вернется в первоначальное положение и событие e_Control сгенерировано не будет.
Для перемещения между командными кнопками используйте клавишу <Таb> и комбинацию клавиш <Shift>+ <Tab>, а при достижении нужной кнопки нажмите пробел.
Если ресурсным идентификатором элемента управления является idc_hello, то для создания маленького сообщения может быть использовано следующее предложение:
ehandler(Window,e_Control(idc_hello,_,_,_),0):-!, dlg_Note("Привет всем!").
В диалоговом окне может быть задана командная кнопка по умолчанию. Это значит, что нажатие клавиши <Enter> в любом месте диалогового окна (кроме области поля редактирования с установленным свойством wsf_WantReturn) эквивалентно нажатию командной кнопки, заданной по умолчанию.
Кнопка, заданная по умолчанию, в начальном положении изображается с окружающим ее прямоугольником, который обозначает, что кнопка является активным элементом управления. Заданная по умолчанию кнопка создается с использованием флага стиля wsf_Default. Это можно сделать в редакторе окон и диалоговых окон VDE отметив соответствующее свойство для кнопки по умолчанию.
Командные кнопки генерируют только один вид событий:
handler(Window,e_Control(CtrlId,CtrlType,CtrlWindow,activated),0):-
Получение и потеря кнопкой фокуса не вызывают генерацию событий getfocus или losefocus.
На следующем шаге мы рассмотрим флажки.