Difference between revisions of "SysFn17/ru"

From KolibriOS wiki
Jump to navigation Jump to search
m (moved SysFn17 to SysFn17/ru: Russian content goes into /ru)
m
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''Функция 17''' - получить код нажатой кнопки.
+
'''Функция 17''' - получить идентификатор нажатой кнопки.
  
 
----
 
----
 
Забирает код нажатой кнопки из буфера.
 
Забирает код нажатой кнопки из буфера.
 +
Параметры:
 +
:* eax = 17 - номер функции
 +
Возвращаемое значение:
 +
:* если буфер пуст, возвращается eax=1
 +
:* если буфер непуст:
 +
::* старшие 24 бита eax содержат идентификатор кнопки
 +
:::(в частности, в ah оказывается младший байт идентификатора;
 +
:::если все кнопки имеют идентификатор, меньший 256,
 +
:::то для различения достаточно ah)
 +
::* al = 0 - кнопка была нажата левой кнопкой мыши
 +
::* al = бит, соответствующий нажавшей кнопке мыши, если не левой
 +
Замечания:
 +
:* "Буфер" хранит только одну кнопку, при нажатии новой кнопки
 +
::информация о старой теряется.
 +
:* При вызове этой функции приложением с неактивным окном
 +
::возвращается ответ "буфер пуст".
 +
:* Возвращаемое значение al соответствует состоянию кнопок мыши
 +
::в формате подфункции 2 [[SysFn37/ru|функции 37]] в момент начала нажатия
 +
::на кнопку, за исключением младшего бита (соответствующего левой
 +
::кнопке мыши), который сбрасывается.
  
'''Параметры:'''
+
'''Константы для регистров:'''
* eax = 17 - номер функции
+
::eax - SF_GET_BUTTON (17)
'''Возвращаемое значение:'''
 
* если буфер пуст, возвращается eax=1
 
* если буфер не пуст, тогда возвращается:
 
** старшие 24 бита eax содержат идентификатор кнопки
 
*** в частности, в ah оказывается младший байт идентификатора; если все кнопки имеют идентификатор, меньший 256, то для различения достаточно ah
 
** а в al возвращается 0 - если использовалась левая кнопка мыши, или бит той кнопки мыши, которая использовалась.
 
 
 
'''Замечания:'''
 
* "Буфер" хранит только одну кнопку; при нажатии новой кнопки информация о старой теряется.
 
* При вызове этой функции приложением с неактивным окном возвращается ответ "буфер пуст".
 
  
 +
{{System_functions}}
 
[[Category: SysCalls]]
 
[[Category: SysCalls]]
{{System_functions}}
 

Latest revision as of 18:00, 12 January 2016

Функция 17 - получить идентификатор нажатой кнопки.


Забирает код нажатой кнопки из буфера. Параметры:

  • eax = 17 - номер функции

Возвращаемое значение:

  • если буфер пуст, возвращается eax=1
  • если буфер непуст:
  • старшие 24 бита eax содержат идентификатор кнопки
(в частности, в ah оказывается младший байт идентификатора;
если все кнопки имеют идентификатор, меньший 256,
то для различения достаточно ah)
  • al = 0 - кнопка была нажата левой кнопкой мыши
  • al = бит, соответствующий нажавшей кнопке мыши, если не левой

Замечания:

  • "Буфер" хранит только одну кнопку, при нажатии новой кнопки
информация о старой теряется.
  • При вызове этой функции приложением с неактивным окном
возвращается ответ "буфер пуст".
  • Возвращаемое значение al соответствует состоянию кнопок мыши
в формате подфункции 2 функции 37 в момент начала нажатия
на кнопку, за исключением младшего бита (соответствующего левой
кнопке мыши), который сбрасывается.

Константы для регистров:

eax - SF_GET_BUTTON (17)