mfc加速器Ctrl +不起作用

时间:2014-10-16 07:56:28

标签: c++ mfc acceleratorkey

我有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并不能解决问题

任何想法??

1 个答案:

答案 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 - "。

Windows Virtual-Key Codes