Есть небольшая но немного раздражительная проблема.
Дело в том что нет возможности удалить горяую клавишу, т.е. когда в обычном элементе управления есть "None".
У вас "None" установлен в самом начале, но если нажать какую-либо клавишу то нет возможности удалить ее.
А так супер !
Здравствуйте, Александр Авдонин, Вы писали:
... С помощью директив препроцессора в одном исходном файле реализованы 2 версии WinHotkeyCtrl: для Windows 98/NT и для Windows 2000 (и выше).
А почему с помощью директив препроцессора? Лучше бы это делать динамически, чтобы без перекомпиляции элемент управления работал везде.
Здравствуйте, Александр Авдонин, Вы писали:
Зачем выводить 16ричный код клавиши? Пользователя это может запутать.
Клавиши My Computer и Calculator распознаются как StartApp1 и StartApp2. Клавиша контекстного меню распознаётся как App. Названия не удобны.
Клавиши Power, Sleep, WakeUp вообще не распознаются (Unknown). и не глотаются.
Tab и Shift+Tab вводятся и глотаются. Это не удобно.
Многие названия клавиш национальные, хорошобы предусмотреть локализацию (Down Arrow == Стрелка Вниз)
Ins и Del лучше заменить на Insert и Delete
Для клавиш -=\/,. выводится по два символа. Странно.
Для клавиши , (0xBC) кроме того выводится закрывающая скобка
Цифры слева и справа различаются, а клавиши Enter нет.
Определение #define WM_KEY (WM_USER + 444) вообще говоря не вполне корректно. Лучше использовать RegisterWindowMessage
Стандартные сообщение HotKey Control (HKM_GETHOTKEY, HKM_SETHOTKEY, HKM_SETRULES) я не нашёл.
Вообще никакого способа самому программно установить комбинацию клавиш (аналог HKM_SETHOTKEY) или фильтр (аналог HKM_SETRULES) я не нашёл.
А так наверное не плохо