質問

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top