我有mfc应用程序,我定义了键盘ACCELERATORS 当我使用字母数字字符时,它工作正常,但我想定义一个加速器,按下按键时可以放大/缩小 + / - 所以我把它定义为以下,它工作正常
ID1 ACCELERATORS DISCARDABLE
{
"+", ID_ZOOMIN , ,ASCII, NOINVERT
"-", ID_ZOOMIN ,ASCII, NOINVERT
}
现在我添加了一个可以接受" + / - "的文本框。作为字符但按下它们现在可以作为缩放/缩小和字符" + / - "没有打字 所以我改变了我的实现,以便让#34; zoomin / zoomout"功能仅在按下控制按钮时有效
ID1 ACCELERATORS DISCARDABLE
{
"+", ID_ZOOMIN , ,ASCII, CONTROL, NOINVERT
"-", ID_ZOOMIN ,ASCII, CONTROL, NOINVERT
}
但仍按 + / - 或 Ctrl + + / Ctrl + - "功能为" zoomin / zoomout"并且不键入 + / - 字符 注意:将ASCII更改为VIRTKEY并不能解决问题
任何想法??
答案 0 :(得分:1)
我刚用我的Windows笔记本电脑测试过。似乎ASCII加速器不支持CONTROL修饰符。
改为使用VIRTKEY。
ID1 ACCELERATORS DISCARDABLE
{
107, ID_ZOOMIN, VIRTKEY, CONTROL, NOINVERT
109, ID_ZOOMOUT, VIRTKEY, CONTROL, NOINVERT
}
或者为" +"指定VK_ADD,为"指定VK_SUBTRACT - "。