Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2010, 03:45   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию C++ HOTKEY

Доброго времени суток уважаемые эксперты, возник вопрос по поводу кнопочек.
Как можно реализовать следующую операцию в событие : VK_CONTOL + 's'
case CTRL + S:
{ ... }

Последний раз редактировалось coNsept; 30.04.2010 в 04:04.
coNsept вне форума Ответить с цитированием
Старый 30.04.2010, 10:53   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

я не знаю какие константы для клавиш, но допустим VK_CTRL - ctrl, а VK_S - s, тогда реализовать ctrl+s можно с помощью логического И
Код:
if (VK_CTRL && VK_S) { /*...*/ }
NiCola999 вне форума Ответить с цитированием
Старый 30.04.2010, 11:24   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Как бы VK_CTRL и им подобные - это не функции, а значения. Ничуть не лучше, чем
Код:
if (10 && 20)
По-моему, есть какие-то адекватные способы, но можете отслеживать нажатие и отпускание Ctrl по OnKeyDown и OnKeyUp. А вообще вроде как-то можно опросить клавиатуру на предмет нажатых клавиш, только не помню как.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 30.04.2010, 11:51   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Буду вам очень признателен если вы вспомните как, я вчера всё возможное перерыл, но так и ничего желаемого не нашел.
coNsept вне форума Ответить с цитированием
Старый 30.04.2010, 20:32   #5
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Цитата:
я не знаю какие константы для клавиш, но допустим VK_CTRL - ctrl, а VK_S - s, тогда реализовать ctrl+s можно с помощью логического И
Не работает такой вариант
coNsept вне форума Ответить с цитированием
Старый 30.04.2010, 21:09   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Было где-то на форуме, в разделе "Создание и обсуждение игр", возможно в одной из прилепленных тем (где-то в начале тогда). Поищите по форуму.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 01.05.2010, 02:32   #7
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Гром, искал вчера и сейчас прошелся ещё раз, хоть убей ничего путного не вижу.

Код:
void main(void)
{
	system("CLS");

	Menu->UpperInterface();
	printf("\n");

	switch ( int Select = getch() )
	{
		case VK_LCONTROL && 's': // Что-то типа такого не работает.
		{
			Func->TGetList();
		} break;

		case '2':
		{
			Func->TSearchFile();
		} break;

		case '3':
		{
			Func->TCreateFile();
		} break;

		case '4':
		{
			Func->TDeleteFile();
		} break;

		case '5':
		{
			Func->TRenameFile();
		} break;

		case VK_ESCAPE: // Тут всё легко и классно :)
		{
			return;
		}

	default: MessageBoxA(NULL, "Acest meniu nu exista", "Error!", MB_OK);
	}

	Menu->LowerInterface();

	system("PAUSE");
}
У кого есть идейки на данную ситуацию ?
- уже второй день не могу решить эту проблемку
coNsept вне форума Ответить с цитированием
Старый 01.05.2010, 10:35   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Немного пошерстив форум (заглянул всего в две темы из многочисленных), нашел следующее:
1. Вспомнил, что я склеротик, и в событии OnKeyDown в билдере (хотя теперь вижу, что вам нужно консоль) не зря есть такой аргумент, как TShiftState, в котором есть индикация нажатый Ctrl, Shift и т.п.
2. Ближе к вашему случаю:
WinAPI'шные функции:
GetKeyboardState позволяет узнавать состояние любой клавиши.
GetKeyState позволяет узнавать состояние конкретной клавиши
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать hotkey в ini Михаил Юрьевич Общие вопросы Delphi 6 29.03.2009 22:51
HotKey Simply-Art Win Api 16 15.08.2008 12:10
KOL HotKey Simply-Art Помощь студентам 6 13.08.2008 11:01
Потомок от HotKey Alter Компоненты Delphi 4 03.01.2008 15:47