0

私が書いた古い 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;
}
4

1 に答える 1

2

上に 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 が押されていることをチェックする他のコードがあると思います。

于 2010-12-30T08:00:47.280 に答える