Member 13089825 Ответов: 1

Как реализовать сочетания клавиш


Привет я должен реализовать сочетания клавиш в своем приложении
если я делаю ctrl+c, то моя функция connect должна быть вызвана
не могли бы вы предложить мне

Что я уже пробовал:

я добавил в свой файл. rc
IDR_MAINFRAME MENU
BEGIN
    POPUP "File"

MENUITEM "&Connect",                    ID_FILE_CONNECT

КОНЕЦ


IDR_MAINFRAME ACCELERATORS
BEGIN
    "C",            ID_FILE_CONNECT,        VIRTKEY, CONTROL

КОНЕЦ

им .СРР
ON_COMMAND(ID_FILE_CONNECT, OnFileConnect)

lstBasicCommands.AddTail(ID_FILE_CONNECT);

PostMessage(WM_COMMAND, ID_FILE_CONNECT);

не могли бы вы подсказать мне, если здесь что-то упущено

Richard MacCutchan

Что происходит, когда вы запускаете приложение и набираете Ctrl+C?

1 Ответов

Рейтинг:
2

Jochen Arndt

В общем, так и должно быть.

Но Ctrl+C является ли ярлык для ID_EDIT_COPY Если фокус сосредоточен на элементе управления, поддерживающем этот ярлык, он будет обрабатываться элементом управления, а не главным окном фрейма.

Я предлагаю выбрать ярлык, который не является общим (перечисленным по адресу Сочетания клавиш для Windows[^]).

[РЕДАКТИРОВАТЬ]
См. также раздел "предоставление согласованных сочетаний клавиш" на сайте . Рекомендации по дизайну пользовательского интерфейса клавиатуры (Windows)[^]:

Цитата:
Согласованный пользовательский интерфейс клавиатуры между приложениями помогает пользователям учиться и взаимодействовать с новыми приложениями. Приложение не должно влиять на какие-либо общесистемные сочетания клавиш (клавиши или комбинации клавиш, используемые для выполнения команды), такие как клавиша логотипа Windows, открывающая меню "Пуск". Приложение также должно следовать общепринятым назначениям сочетаний клавиш, таким как CTRL+C для копирования и CTRL+Z для отмены.
[/РЕДАКТИРОВАТЬ]


Member 13089825

спасибо вам, Йохен, за быстрый ответ.
можно ли реализовать собственные ярлыки(я имею в виду переопределение существующего с новым)

Jochen Arndt

Ты можешь это сделать. Но тогда вам придется переопределить его во всех окнах, которые обрабатывают ярлык по умолчанию.

Но опять же: я бы этого не сделал. Это нарушает правила юзабилити (я обновлю свой ответ ссылкой).

Многие пользователи знают, что Ctrl+C-это ярлык для копирования фактически выбранных данных в буфер обмена, и предполагают, что приложение обрабатывает их так, как ожидалось. Они могут быть раздражены или раздражены, если ваше приложение ведет себя по-другому.