2

我有 mfc 应用程序,我在其中定义了键盘 ACCELERATORS 当我使用字母数字字符时它工作正常,但我想定义一个在按下键时放大/缩小的加速器+/- 所以我将它定义如下,它工作正常

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

现在我添加了一个文本框,它可以接受“+/-”作为字符,但按下它们现在起到放大/缩小的作用,并且没有输入字符“+/-”所以我将实现更改为具有“zoomin/zoomout”功能仅在按下控制按钮时有效

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

但仍然按+/-Ctrl+ +/ Ctrl+ -" 功能为 "zoomin/zoomout" 并且+/-字符未输入 注意:将 ASCII 更改为 VIRTKEY 并不能解决问题

有任何想法吗??

4

1 回答 1

1

我刚刚用我的 Windows 笔记本电脑进行了测试。似乎 ASCII 加速器不支持CONTROL修饰符。

改为使用VIRTKEY

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

或指定VK_ADDfor +, VK_SUBTRACTfor -

Windows 虚拟键代码

于 2014-10-16T08:59:01.000 回答