У меня есть приложение 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 не решает проблему
Есть идеи??
Я только что проверил с моим ноутбуком Windows. Похоже, ускорители ASCII не поддерживают модификатор CONTROL.
Вместо этого используйте VIRTKEY.
ID1 ACCELERATORS DISCARDABLE
{
107, ID_ZOOMIN, VIRTKEY, CONTROL, NOINVERT
109, ID_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
}
Или укажите VK_ADD для «+», VK_SUBTRACT для «-».