Текстовый курсор в Win32-консоли

Тема в разделе "C и С++ FAQ", создана пользователем BreakPointMAN, 16 сен 2004.

Статус темы:
Закрыта.
  1. BreakPointMAN

    BreakPointMAN Гость

    Есть такая функция под C++, называется она _setcursortype:
    Всё было бы прекрасно, если бы она работала... вернее, если работала бы корректно. В оконном режиме все замечательно: курсор меняет свой внешний вид, как положено, или отключается вовсе... Но при переходе в полноэкранный режим _setcursortype(_NOCURSOR) не срабатывает ВООБЩЕ: текстовый курсор никуда не исчезает, а остается таким же, каким был до вызова данной функции.

    Протестировано на нескольких платформах (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 приподнимается и показывается не в нижней, а в верхней позиции знакоместа.

    Быть может, кто-нибудь сталкивался с подобным???

    Вот, например, текст программки для экспериментов:
    Код (Text):
    #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();
       }
     }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей