Talk:SysFn00/ru: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{DISPLAYTITLE: Функция 0 — определить и нарисовать окно}} | __NOTOC__ {{DISPLAYTITLE: Функция 0 — определить и нарисовать окно}} | ||
== Параметры == | == Параметры == | ||
Revision as of 06:41, 4 April 2010
Параметры
биты | тип | значение | описание |
---|---|---|---|
eax | |||
0..31 | uint32 | 0 | Номер функции. |
ebx | |||
0..15 | uint16 | ширина окна | Расположение окна относительно оси X. |
16..31 | int16 | позиция окна по X | |
ecx | |||
0..15 | uint16 | высота окна | Расположение окна относительно оси Y. |
16..31 | int16 | позиция окна по Y | |
edx | |||
0..23 | rgb888 | цвет клиентской области | |
24..27 | uint4 | тип окна |
Остальные возможные значения (от 5 до 15) зарезервированы, вызов функции с такими значениями игнорируется. |
28 | bit | флаг: текст заголовка | Тип окна I-II: игнорируется.
Тип окна III-IV:
|
29 | bit | флаг: начало координат | Начало координат совпадает с:
|
30 | bit | флаг: сплошной фон | Клиентская область при отрисовке окна:
|
31 | bit | флаг: градиентный фон | Клиентская область заполняется:
|
esi | |||
0..23 | rgb888 | цвет заголовка окна | Только для окон типа I и II. |
24 | bit | флаг: неперемещаемое окно |
|
25..27 | 0 | Зарезервированы. | |
28..31 | uint4 | стиль заголовка окна | Тип окна I-II:
Другие значения зарезервированы. Тип окна III-IV: игнорируется. |
edi | |||
0..31 | rgb888 | цвет рамки окна | Только для окон типа I и II. |
pointer | адрес строки заголовка | Только для окон типа III и IV при edx28 = 1. |
Возвращаемое значение
Функция не возвращает значения.
Замечания
- Положение и размеры окна устанавливаются при первом вызове этой функции и игнорируются при последующих; для изменения положения и/или размеров уже созданного окна используйте 67-ю функцию.
- Для окон стилей Y=3,4 с заголовком (A=1) строка заголовка устанавливается при первом вызове этой функции и игнорируется при последующих (точнее говоря, игнорируется после вызова подфункции 2 функции 12 - конца перерисовки); для изменения строки заголовка уже созданного окна используйте подфункцию 1 функции 71.
- Если использовать окна соответствующих стилей, то положение и/или размеры окна могут меняться пользователем. Текущие положение и размеры могут быть получены вызовом функции 9.
- Окно должно умещаться на экране. Если переданные координаты и размеры не удовлетворяют этому условию, то соответствующая координата (или, возможно, обе) считается нулем, а если и это не помогает, то соответствующий размер (или, возможно, оба) устанавливается в размер экрана.
Далее обозначим xpos,ypos,xsize,ysize - значения, передаваемые в ebx,ecx. Координаты приводятся относительно левого верхнего угла окна, который, таким образом, задается как (0,0), координаты правого нижнего угла суть (xsize,ysize).
- Размеры окна понимаются в смысле координат правого нижнего угла.
Это же относится и ко всем остальным функциям. Это означает, что реальные размеры на 1 пиксель больше.
Вид окна типа I
- рисуется внешняя рамка цвета, указанного в edi,шириной 1 пиксель
- рисуется заголовок - прямоугольник с левым верхним углом (1,1)и правым нижним (xsize-1,min(25,ysize)) цвета, указанного в esi (с учетом градиента)
- если ysize>=26, то закрашивается рабочая область окна - прямоугольник с левым верхним углом (1,21) и правым нижним (xsize-1,ysize-1) (размерами (xsize-1)*(ysize-21)) - цветом, указанным в edx (с учетом градиента)
- если A=1 и строка заголовка установлена подфункцией 1 функции 71, то она выводится в соответствующем месте заголовка
Вид окна типа II
- рисуется внешняя рамка шириной 1 пиксель "затенённого" цвета edi (все составляющие цвета уменьшаются в два раза)
- рисуется промежуточная рамка шириной 3 пикселя цвета edi
- рисуется внутренняя рамка шириной 1 пиксель "затенённого" цвета edi
- рисуется заголовок - прямоугольник с левым верхним углом (4,4) и правым нижним (xsize-4,min(20,ysize)) цвета, указанного в esi (с учетом градиента)
- если ysize>=26, то закрашивается рабочая область окна - прямоугольник с левым верхним углом (5,20) и правым нижним (xsize-5,ysize-5) - цветом, указанным в edx (с учетом градиента)
- если A=1 и строка заголовка установлена подфункцией 1 функции 71, то она выводится в соответствующем месте заголовка
Вид окна со скином (типа III и IV)
- рисуется внешняя рамка шириной 1 пиксель цвета 'outer' из скина
- рисуется промежуточная рамка шириной 3 пикселя цвета 'frame' из скина
- рисуется внутренняя рамка шириной 1 пиксель цвета 'inner' из скина
- рисуется заголовок (по картинкам из скина) в прямоугольнике (0,0) - (xsize,_skinh-1)
- если ysize>=26, то закрашивается рабочая область окна - прямоугольник с левым верхним углом (5,_skinh) и правым нижним (xsize-5,ysize-5) - цветом, указанным в edx (с учетом градиента)
- определяются две стандартные кнопки: закрытия и минимизации (смотри функцию 8)
- если A=1 и в edi (ненулевой) указатель на строку заголовка, то она выводится в заголовке в месте, определяемом скином
- Значение переменной _skinh доступно как результат вызова подфункции 4 функции 48