Ctrl+x、Ctrl+C、およびCtrl+VのWindows定数
-
14-10-2019 - |
質問
古いMFCコードを手に入れました。ウィンドウクラスのonchar()ハンドラーに次のコードがあります。
0x18のような定数を使用するのは本当に好きではありません。コードをより読みやすくしたいのですが。私は自分のものを宣言できることを知っていますが、これらの値のためのWindowsマクロはありませんか?ウェブ上でこれについて何も見つかりませんでした。
// Check for clipboard commands
switch (nChar)
{
case 0x18: // Ctrl+X - Cut
OnEditCut();
break;
case 0x03: // Ctrl+C - Copy
OnEditCopy();
break;
case 0x16: // Ctrl+V - Paste
OnEditPaste();
break;
}
解決
NCHARのオフセットを差し引いているコードはそこにありますか?
これらの値は、アルファベット内の文字の場所ですが、文字コードが通常そのように機能するとは思わない。 (これを使用してから長い時間が経ちましたので、たぶん私はただ忘れがちです。)
とにかく、あなたが持っているコードフラグメントは事実上これです(少なくともASCII文字順序付け、つまりアルファベットを使用するアーキテクチャに):
// Check for clipboard commands
switch (nChar)
{
case ('X' - 'A' + 1): // Ctrl+X - Cut
OnEditCut();
break;
case ('C' - 'A' + 1): // Ctrl+C - Copy
OnEditCopy();
break;
case ('V' - 'A' + 1): // Ctrl+V - Paste
OnEditPaste();
break;
}
私の他のコメントで述べたように、私はCTRLが抑制されていることの他のコードチェックがあると思います。
所属していません StackOverflow