Всё было бы прекрасно, если бы она работала... вернее, если работала бы корректно. В оконном режиме все замечательно: курсор меняет свой внешний вид, как положено, или отключается вовсе... Но при переходе в полноэкранный режим _setcursortype(_NOCURSOR) не срабатывает ВООБЩЕ: текстовый курсор никуда не исчезает, а остается таким же, каким был до вызова данной функции.Syntax
#include <conio.h>
void _setcursortype(int cur_t);
Description
Selects cursor appearance.
Sets the cursor type to
_NOCURSOR Turns off the cursor
_NORMALCURSOR Normal underscore cursor
_SOLIDCURSOR Solid block cursor
Note: Do not use this function for Win32s or Win32 GUI applications.
Return Value
None.
Протестировано на нескольких платформах (MS Win2k SP4/ MS WinXP SP1/ MS Win98 SE), под несколькими компиляторами (Borland Turbo C++ 3.0 / Borland C++ 5.02 / Borland C++ Builder 6.0) и с разными видеокарточками (S3 Savage 4 32MB/GeForce 2 MX 400 32MB). Результаты получаются интересные: при компиляции под DOS все работает корректно в любых комбинациях платформа/компилятор/видеокарта... при компиляции в Win32-console под всеми NT-подобными системами _setcursortype(_NOCURSOR) не имеет никакого эффекта, а под Win9x начинается другой глюк: так называемый normal cursor приподнимается и показывается не в нижней, а в верхней позиции знакоместа.
Быть может, кто-нибудь сталкивался с подобным???
Вот, например, текст программки для экспериментов:
Код: Выделить всё
#include <conio.h>
void main()
{
textmode(C80); window(1,1,80,25); clrscr();
cprintf("*****");
while(1)
{
_setcursortype(_NORMALCURSOR);
getch();
_setcursortype(_SOLIDCURSOR);
getch();
_setcursortype(_NOCURSOR);
getch();
}
}