Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Нужна функция ?


Автор: Skorp 9.2.2003, 18:19
Вот я решил под с дос компилером побаловаться.
Но возникла проблема.
Мне нужна функция которая бы проверя нажата ли клавиша клавы и возвращала ее значение, но не ждала нажатия.
cool.gif

Автор: acp 9.2.2003, 19:24
В своих старых прогах посмотрел
Код
bioskey(1)

Автор: Skorp 10.2.2003, 05:03
Я попробовал функцию bioskey(1), но она не очень то хорошо и работает.
сначало она возвращает 0, а после первого нажатия клавиши все время ее значения.
? Может можно обнулить ее результат что бы она заново могла считать .
? Или функция получше может есть

Автор: Alex101 10.2.2003, 06:44
Что-то типа того:
Код

if(bioskey(1))
code=bioskey(0);

Буфер будет очищаться

Автор: Skorp 12.2.2003, 17:42
Может кто занет как в досе сделать режим более чем на 640х480(16 цветов)
Например если бы 1024-768 256 или (32б) confused.gif

Автор: Alex101 12.2.2003, 18:37
Использовать прерывание BIOS 10h.
Можно устанавливать различные режимы, но тут все зависит от видеоадаптера.
Вот кусочек кода - процедура установки расширенного видеорежима.
Код

_Set_Ext_Mode proc far
arg mode:word
       push    bp
       mov     bp,sp
       mov     ax,4F02h
       mov     bx,mode
       int     10h
       pop bp
ret
_Set_Ext_Mode endp

Но при выводе на экран есть некоторые траблы - вся область видеопамяти в ДОС недоступна, только фрагментами по 64 КБ (в реальном режиме), универсальные способы переключения банков медленные, а для каждого конкретного адаптера они азличны...

Автор: neutrino 14.2.2003, 20:32
Hm ...

if (kbhit()) // esli klavishu najali to ...

P.S. Bufer klavy mojno otchistit' funkciei' getch()

Naprimer:

while (!kbhit()&&getch()=='q') {
cout<<endl<<"najmite klavishu Q";
}

Автор: brb 15.2.2003, 06:50
Преимущество bioskey() в том, что она возвращает скан-коды клавишь, т.е. я могу ей отловить все что угодно, а kbhit() нет. Под ДОС bioskey() во всех отношениях лучше, а вот под винды...это я не в курсах

Автор: Skorp 16.2.2003, 17:03
Может кто-нибудь знает как в c++ под дос мышь инициализировать в режиме 1024х768 256color и выше. Я инициализирую её по стандартному но она видна на экране только в 640х480 16color и ниже.

Автор: Baa 16.2.2003, 19:35
КАЖДЫЙ НОВЫЙ ВОПРОС В ОТДЕЛЬНУЮ ТЕМУ

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)