Установить курсор



3.3.5. Установить курсор

На входе: AX = 0004h; CX = устанавливаемая координата X (по горизонтали); DX = устанавливаемая координата Y (по вертикали). На выходе: Регистры не используются.

Обычно курсор мыши устанавливает не программа, а оператор. Однако с помощью функции 04h программа тоже может установить курсор в заданную позицию. Для текстового режима устанавливаемые номера строки и столбца должны быть умножены на 8.

Если программа пытается установить курсор в область, где курсор невидим (эта область задается функцией 10h), то она сможет это сделать. Курсор при этом исчезнет с экрана, что не всегда желательно.

Если при помощи функций 07h или 08h область для перемещения курсора была ограничена, то при попытке установить курсор за границу этой области, он будет установлен в точку, которая находится внутри границы и находится на минимальном расстоянии от точки, заданной при вызове функции.

Функция для установки курсора: /** *.Name ms_setcr *.Title Установка курсора в заданную точку * *.Descr Эта функция выполняет установку курсора мыши * в точку, заданную координатами X и Y. * *.Proto void ms_setcr(int x, int y) * *.Params int x - горизонтальная координата курсора; * int y - вертикальная координата курсора. * *.Return Ничего * *.Sample ms_samp2.c **/ #include <dos.h> #include <conio.h> union REGS reg; void ms_setcr(int x, int y) { reg.x.ax = 4; reg.x.cx = x; reg.x.dx = y; int86(0x33,&reg,&reg); }



Приведем пример простой программы, которая устанавливает курсор в левый верхний угол экрана: #include <stdio.h> #include <conio.h> #include "sysp.h" void main() { int botm; // Инициализируем мышь if(!ms_init(&botm)) { printf("\nМышь не установлена"); exit(-1); } // Включаем курсор и ожидаем нажатия на клавишу printf("\n\nКурсор мыши включен, " "для выключения нажмите любую клавишу"); ms_on(); // Устанавливаем курсор в левый верхний угол экрана ms_setcr(0,0); getch(); // Выключаем курсор ms_off(); }



Содержание раздела