Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Основные функции и стили ScrollBar.




WM_VSCROLL

WM_HSCROLL

За прорисовку ответственна программа пользователя.

Основные функции:

1. Установка ранга линеек SetScrollRange

Ранг линейки прокрутки – это диапазон изменения значений переменной, связанный с положением движка данных элементов управления.

[Rmin;Rmax] – ранг линейки. Значение R – 32-разрядное число. Rmin<Rmax для правильной работы линейки.

Операнды:

1. ID окна.

2. ID типа

3. Rmin

4. Rmax

Возвращает

1. Код ошибки

2. Установка положения движка линейки SetScrollPos.

Позволяет установить движок в произвольную позицию в пределах ранга линейки.

Операнды:

1. Дескриптор окна (hWnd)

2. ID типа

3. Позиция

4. Резервный параметр (True)

3. Получение позиции движка GetScrollPos

Основные функции и стили линеек скроллинга.

Окна или дочерние окна могут быть оснащены отдельными элементами вертикального или горизонтального скроллинга. Наличие у окна этих элементов устанавливается с помощью стилей:

WSUSCROLL - вертикальный скроллинг.

WSHSCROLL - горизонтальный скроллинг.

Сообщения создаваемые длинными элементами управления называются: WSJJSCROLL WSJJSCROLL

Следует отметить, что при изменении положения движка на линейке изменяется лишь внутренняя переменная линейки прокрутки, но не изображение окна. За скроллинг и прорисовку окна ответственна пользовательская программа получающая сообщение от линейки прокрутки.

Основные функции линейки прокрутки:

1. Установка ранга линеек. Выполняется с помощью функции: SetScrollRange. Ранг линейки прокрутки - это диапазон изменения значений переменной связанной с положением движка данных элементов управлении.

Ранг линейки - [Rmin, Rmax], при этом значение R задаётся 32-х разрядным числом. Значение Rmin может принимать любые значения, однако для правильной работы линейки: Rmin< Rmax. В качестве операндов функции установки рангов указывается:

1. 1. Идентификатор окна: hWnd Call SetScrollRange.

1. 2. Идентификатор типа элемента: SBVERT.

1. 3. Значение Rmin: 0.

1. 4. Значение Rmax: 100.

1. 5. Функция возрастает: код ошибки.

2. Функция установки положения движка линеек SetScrollPos.

Позволяет установить движок в произвольную позицию в пределах установленного ранга

линейки.

Операнды:

Идентификатор окна.

Идентификатор типа.

Позиция: 20.

Резервный параметр TRUE (-1).

Пример: TRUE 20 SBVERT hWnd CallScollPos.

Перемещение движка линейки прокрутки выполняется с помощью данной функции.

Команды получения движка линейки 00 SBVERT hWnd CallScrollPos. Функция возвращает позицию линейки прокрутки.

Сообщения от линейки скроллинга.

Данные сообщения сопровождаются 4-мя параметрами:

Дескриптор окна.

Сообщения от линейки прокрутки, (const Windows) предназначенная для идентификации

одного из нескольких событий возникающих на линейке.

Старший параметр, который содержит в младшем полуслове тип сообщения (назначение

аналогичное предыдущему параметру), а в старшем дополнительный параметр.

Младший параметр: резерв.

Программа обработки сообщений от линеек скроллинга как правило организуется в виде конструкции множественного выбора. В качестве ключа и который используется младшее полуслово младшего параметра.

Типы событий вертикальной линейки прокрутки.

SBBOTTOM - достижение крайнего нижнего положения линейки прокрутки.

SBTOP - достижение движком крайнего верхнего положения

SBLINEDOWN - событие одинокого нажатия на клавишу "вниз".

В данной секции необходимо инкрементировать значение связанное с позицией движка.

SBLINEUP - выполняется декремент значения (аналогично верхнему, но при нажатии

"вверх").

SBPAGEDOWN - страница. События возникают при нажатии мышкой на поле может

управлять движком и клавишей "вниз".

Событие аналогично событию LINEDOWN, но для увеличения переменной линейки,

назначение больше 1.

SBPEGEUP - событие нажатия мышкой на поле может управлять движком и кнопкой

"вверх".

SBTHUMBPOSITION - события позиционирования движка (Движок отпускается мышью).

В этом случае в старшем полуслове, старшего параметра передаётся новое положение

движка. Если это положение не будет установлено с помощью функции Windows, движок

вернётся на прежнее место.

SBTHUMBTRACK - данное событие вытекает при перемещении движка без его

отпускания манипулятора мыши. Событие вызывается аналогично событию

WHMOUSEMOVE. При этом каждый раз в старшем полуслове старшего параметра

передаётся позиция движка, однако в этом случае изменять позицию движка с помощью

функции, как правило не требуется.

События горизонтальной линейки.

Во многом повторяют события вертикальной линейки, кроме 4-х событий:


SBLINELIFT - (аналог LINEUP).

SBLINERIGHT - (аналог LINEDOWN).

SBPAGELEFT - (аналог PEGEUP).

SBPAGERIGHT - (анлог PAGEDOWN).


Основы программирования на ассемблере: арифметические и логические действия.

4. Команды инкремента и декремента

Предназначены для быстрого увелечения/уменьшения на единицу регистровых операндов.

· Inc BX = add BX,1

· Dec BX = sub BX,1

Разрядность операции определяется типом операнда, который может быть 8,16,32-разрядный.

5. Команды сложения и вычитания

Add позволяет выполнить сложение регистровых и других операндов.

ADD DL,AH

ADD DL,10

Оба операнда двухадресных команд должны иметь одинаковую разрядность.

Аналогично операция вычитания SUB.

6. Умножение и деление.

В ядре процессора Intel MUL перемножает 8,16-биотвые операнды, создавая при этом 16,32-разрядные произведения. Для данной инструкции требуется указать только один операнд второй операнд должен находится в аккумуляторе. Старшая часть произведения будет размещаться в регистре D, а младшая в регистре A.

Пример: 5*8

MOV AL,5

MOV BH,8

MUL BH

MUL – беззнаковая команда.

IMUL – знаковая. В этом случае знаковый разряд операндов в процедуре умножения не участвует, а служит лишь для вычисления знака результата.

DIV – беззнаковое деление. Выполняет деление 16-разрядного на 8-разрядный операнды. В результате частное записывается в регистр AL, а остаток в регистр AH. Делитель всегда регистр DL, делимое – AX.


Пример: 51/10

MOV AX,51

MOV DL,10

DIV DL

;AL = 5, AH = 1.

IDIV - знаковое деление.


7. Логические операции

Выполняются над операндами побитно. Логические операции выполняет процессор. AND, OR, XOR

Основы программирования на ассемблере: получение кодов нажатых клавиш и вывод их на экран.

Для 21-го прерывания регистр AH содержит номер подфункции, например единица – вызов функции чтения кода нажатой клавиши. О значении регистра AH должен позаботится программист. Код нажатой клавиши будет передан системой в AL.

L1: MOV AH,1

INT 21H

MOV DL,AL

MOV AH,2

INT 21H

CMP AL,13H

JNZ L1

Для того чтобы распечатать введённый код на дисплее используют функцию №2. Код вводимого символа должен располагаться в регистре DL.

CMP AL,13H; команда выполняет вычитание однако в его результате меняются только флаги.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...