Шаг 61.
Visual Prolog.
Командные кнопки

    На этом шаге мы рассмотрим командные кнопки.

    Командные кнопки позволяют пользователю выполнять различные действия: вызывать закрытие окна или диалогового окна, открытие нового окна, начало печати и т. д.

    Командные кнопки - это такие элементы управления, которые "вдавливаются" при нажатии на них мышью и возвращаются в первоначальное положение после того, как кнопка мыши отпущена. В последнем случае генерируется событие 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.

    На следующем шаге мы рассмотрим флажки.




Предыдущий шаг Содержание Следующий шаг