МФК ускорители Ctrl + не работает

У меня есть приложение MFC, где я определил ускорители клавиатуры
Он отлично работает, когда я использую буквенно-цифровые символы, но я хочу определить ускорители, которые увеличивают / уменьшают масштаб при нажатии на клавиши +/-
поэтому я определил его следующим образом, и он работает нормально

 ID1 ACCELERATORS DISCARDABLE
{
"+",  ID_ZOOMIN ,  ,ASCII, NOINVERT
"-",   ID_ZOOMIN ,ASCII, NOINVERT
}

Теперь я добавил текстовое поле, которое может принимать «+/-» в качестве символов, но нажатие на них теперь работает как zoomin / zoomout, а символы «+/-» не вводятся
поэтому я изменил свою реализацию, чтобы функциональность «zoomin / zoomout» работала только при нажатой кнопке управления

 ID1 ACCELERATORS DISCARDABLE
{
"+",  ID_ZOOMIN ,  ,ASCII, CONTROL, NOINVERT
"-",   ID_ZOOMIN ,ASCII, CONTROL, NOINVERT
}

но все еще нажимает +/- или же Ctrl + +/Ctrl + -«функционировать как» Zoomin / Zoomout «и +/- символы не набираются
Примечание: изменение ASCII на VIRTKEY не решает проблему

Есть идеи??

2

Решение

Я только что проверил с моим ноутбуком Windows. Похоже, ускорители ASCII не поддерживают модификатор CONTROL.

Вместо этого используйте VIRTKEY.

 ID1 ACCELERATORS DISCARDABLE
{
107,  ID_ZOOMIN,  VIRTKEY, CONTROL, NOINVERT
109,  ID_ZOOMOUT,  VIRTKEY, CONTROL, NOINVERT
}

Или укажите VK_ADD для «+», VK_SUBTRACT для «-».

Коды виртуальных клавиш Windows

1

Другие решения