2

キーボードアクセラレータを定義したmfcアプリケーションがあります。英数字を使用すると正常に動作しますが、キーを押しながらズームイン/ズームアウトするアクセラレータを定義したい+ので- 、次のように定義すると正常に動作します

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

ここで、文字として「+/-」を受け入れることができるテキスト ボックスを追加しましたが、それらを押すとズームイン/ズームアウトとして機能し、文字「+/-」は入力されないため、実装を「ズームイン/ズームアウト」に変更しました。機能は、コントロール ボタンが押されている間のみ動作します

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

+ただし、 /-またはCtrl+ +/ Ctrl+を押し-ても "ズームイン/ズームアウト" として機能し、+/-文字は入力されません 注: ASCII を VIRTKEY に変更しても問題は解決しません

何か案は??

4

1 に答える 1

1

Windowsラップトップでテストしました。CONTROLASCII アクセラレータは修飾子をサポートしていないようです。

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 に答える