Difference between revisions of "SysFn08/ru"
Jump to navigation
Jump to search
m (moved SysFn08 to SysFn08/ru: add /ru) |
m |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
---- | ---- | ||
− | + | Параметры для определения кнопки: | |
− | * eax = 8 - номер функции | + | :* eax = 8 - номер функции |
− | * ebx = [координата по оси x]*65536 + [размер по оси x] | + | :* ebx = [координата по оси x]*65536 + [размер по оси x] |
− | * ecx = [координата по оси y]*65536 + [размер по оси y] | + | :* ecx = [координата по оси y]*65536 + [размер по оси y] |
− | * edx = 0xXYnnnnnn, где: | + | :* edx = 0xXYnnnnnn, где: |
− | + | ::* nnnnnn = идентификатор кнопки | |
− | + | ::* старший (31-й) бит edx сброшен | |
− | + | ::* если 30-й бит edx установлен - не прорисовывать кнопку | |
− | + | ::* если 29-й бит edx установлен - не рисовать рамку | |
− | + | :::при нажатии на кнопку | |
− | + | :* esi = 0x00RRGGBB - цвет кнопки | |
− | + | Параметры для удаления кнопки: | |
− | * eax = 8 - номер функции | + | :* eax = 8 - номер функции |
− | * edx = 0x80nnnnnn, где nnnnnn - идентификатор кнопки | + | :* edx = 0x80nnnnnn, где nnnnnn - идентификатор кнопки |
− | + | Возвращаемое значение: | |
− | + | :* функция не возвращает значения | |
− | * функция не возвращает значения | + | Замечания: |
− | + | :* Размеры кнопки должны быть больше 0 и меньше 0x8000. | |
− | + | :* Для окон со скином при определении окна (вызове 0-й функции) | |
− | * Размеры кнопки должны быть больше 0 и меньше 0x8000. | + | ::создаются две стандартные кнопки - закрытия окна |
− | * Для окон со скином при определении окна (вызове 0-й функции) создаются две стандартные кнопки - закрытия окна с идентификатором 1 и минимизации окна с идентификатором 0xffff. | + | ::с идентификатором 1 и минимизации окна с идентификатором 0xffff. |
− | * Создание двух кнопок с одинаковыми идентификаторами вполне допустимо. | + | :* Создание двух кнопок с одинаковыми идентификаторами |
− | * Кнопка с идентификатором 0xffff при нажатии интерпретируется системой как кнопка минимизации, система обрабатывает такое нажатие самостоятельно, не обращаясь к приложению. В остальном это обычная кнопка. | + | ::вполне допустимо. |
− | * Общее количество кнопок для всех приложений ограничено числом 4095. | + | :* Кнопка с идентификатором 0xffff при нажатии интерпретируется |
+ | ::системой как кнопка минимизации, система обрабатывает такое | ||
+ | ::нажатие самостоятельно, не обращаясь к приложению. | ||
+ | ::В остальном это обычная кнопка. | ||
+ | :* Общее количество кнопок для всех приложений ограничено | ||
+ | ::числом 4095. | ||
+ | '''Константы для регистров:''' | ||
+ | ::eax - SF_DEFINE_BUTTON (8) | ||
{{System_functions}} | {{System_functions}} | ||
[[Category: SysCalls]] | [[Category: SysCalls]] |
Latest revision as of 17:14, 12 January 2016
Функция 8 - определить/удалить кнопку
Параметры для определения кнопки:
- eax = 8 - номер функции
- ebx = [координата по оси x]*65536 + [размер по оси x]
- ecx = [координата по оси y]*65536 + [размер по оси y]
- edx = 0xXYnnnnnn, где:
- nnnnnn = идентификатор кнопки
- старший (31-й) бит edx сброшен
- если 30-й бит edx установлен - не прорисовывать кнопку
- если 29-й бит edx установлен - не рисовать рамку
- при нажатии на кнопку
- esi = 0x00RRGGBB - цвет кнопки
Параметры для удаления кнопки:
- eax = 8 - номер функции
- edx = 0x80nnnnnn, где nnnnnn - идентификатор кнопки
Возвращаемое значение:
- функция не возвращает значения
Замечания:
- Размеры кнопки должны быть больше 0 и меньше 0x8000.
- Для окон со скином при определении окна (вызове 0-й функции)
- создаются две стандартные кнопки - закрытия окна
- с идентификатором 1 и минимизации окна с идентификатором 0xffff.
- Создание двух кнопок с одинаковыми идентификаторами
- вполне допустимо.
- Кнопка с идентификатором 0xffff при нажатии интерпретируется
- системой как кнопка минимизации, система обрабатывает такое
- нажатие самостоятельно, не обращаясь к приложению.
- В остальном это обычная кнопка.
- Общее количество кнопок для всех приложений ограничено
- числом 4095.
Константы для регистров:
- eax - SF_DEFINE_BUTTON (8)
|