powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / как научить приложение работать с горячими клавишами?
2 сообщений из 2, страница 1 из 1
как научить приложение работать с горячими клавишами?
    #32672322
Проще говоря как сделать так, чтобы при нажатии Ctl+Enter нажималась кнопка Button1 (срабатывало событие OnClick кнопки).
...
Рейтинг: 0 / 0
как научить приложение работать с горячими клавишами?
    #32672413
Siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотря под чем... Обычно хватает указать в имени символ "&" типа "Bu&tton1"
и тогда при выполнении будет Bu t ton1 и кнопка нажмётся если нажать <Alt>-t.

В общем случае: хоткей - это вообще окно такое...
И чтобы забабахать хоткей надо это окно создать.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  //msdn 
    hwndHot = CreateWindowEx( 
         0 ,                              // no extended styles  
        HOTKEY_CLASS,                   // class name  
        "",                             // no title (caption)  
        WS_CHILD | WS_VISIBLE,          // style  
         10 ,  10 ,                         // position  
         200 ,  20 ,                        // size  
        hwndDlg,                        // parent window  
        NULL,                           // uses class menu  
        g_hinst,                        // instance  
        NULL                            // no WM_CREATE parameter  
        ); 

Причём родитель ему указывается как раз то окно, которое будет этот хоткей ловить.

Далее надо сказать окну хоткея, какую именно комбинацию кнопок нам надо поймать.

Код: plaintext
1.
2.
3.
4.
     // msdn 
     // Set CTRL + ALT + A as the default hot key for this window.  
     // 0x41 is the virtual key code for 'A'.  
    SendMessage(hwndHot, HKM_SETHOTKEY, 
        MAKEWORD(0x41, HOTKEYF_CONTROL | HOTKEYF_ALT),  0 ); 

Всё. После этих приседаний в системе появится(ещё одно) окно типа HotKeyCatcher (если я ничё не путаю) и как тока оно поймает эту комбинацию, оно пошлёт своему родителю соощение:
WM_HOTKEY

Правда тут таятся некие обломы, типа приоритетов. То что в виндах хоткей - не получится сделать в приложении(ну на самом деле получится, просто надо делать по-другому(я вот себе забабахал горячую кнопку Win, причём одну на нажатие, вторую на отжатие)).

Или вот ещё вариант: использовать функцию RegisterHotKey - она сама делает все верхние приседания.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / как научить приложение работать с горячими клавишами?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]