Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
behollder
42 / 23 / 7
Регистрация: 23.01.2013
Сообщений: 112
Завершенные тесты: 1
#1

Hotkeys - C++

03.08.2013, 14:51. Просмотров 352. Ответов 2
Метки нет (Все метки)

Добрый день.
Нужен совет как более правильно сделать следующую вещь: у приложения будут функции(к примеру "переключить трек" и т.д.). Нужно дать пользователю возможность назначать на различные функции горячие клавиши. Сам вопрос в том как правильней хранить эти функции и выбирать для вызова при срабатывании хоткея. Что-то такое в общем.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2013, 14:51     Hotkeys
Посмотрите здесь:

C# Bind Hotkeys на сайте
JavaScript HotKeys
C# Hotkeys
HotKeys Delphi
Конфликтуют 2 плагина jQuery.noty и jquery.hotkeys-0.7.9 jQuery
Хотел на модальной форме для кнопки сделать hotkeys, но вылетает ошибка. Delphi
Mono hotkeys
Создание HotKeys (Отловить нажатие клавиши Esc) C#
Глобальные хуки (Hotkeys) - Забинденные кнопки перестают работать в приложениях C#

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dragokas
Эксперт WindowsАвтор FAQ
14930 / 6533 / 792
Регистрация: 25.12.2011
Сообщений: 10,096
Записей в блоге: 15
03.08.2013, 17:24     Hotkeys #2
Цитата Сообщение от greenlight Посмотреть сообщение
как правильней хранить эти функции и выбирать для вызова
Это Ваш основной вопрос?
Один я не пойму что хочет ТС?
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
03.08.2013, 17:29     Hotkeys #3
Для хранения функции подойдет std::function с нужной сигнатурой или более общий случай - посмотреть что такое паттерн команда (Command design command).
Если у вас будет например мапина хоткеев и комманд, то сделать задуманное достаточно просто:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// очень схематично:
std::map<HotKey, Command> commands;
.... .. тут инициализация этой мапины ну и редактирование.
когда нажимают хоткей - вызывается некая функция, которая имеет доступ до этой мапины:
 
void ProcessHotKey(const HotKey& hotkey)
{
   auto iter = commands.find(hotKey);
   if (iter != commands.end())
   {
      (*iter)->execute();
      // или
      (*iter)();
      // способ вызова зависит от того, как выглядит класс Command
   }
}
Yandex
Объявления
03.08.2013, 17:29     Hotkeys
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru