Question

J'ai un code MFC plus j'ai écrit que je suis « rafraîchies » un peu. Je le code suivant dans une classe de fenêtre gestionnaire OnChar ().

Je ne aime pas vraiment en utilisant des constantes comme 0x18. Je voudrais rendre le code plus lisible. Je sais que je peux déclarer ma propre, mais sont-il pas des macros Windows pour ces valeurs? Je ne pouvais pas trouver quoi que ce soit à ce sujet sur le web.

// 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;
}
Était-ce utile?

La solution

Avez-vous un code ci-dessus il qui est soustrait un décalage par rapport nChar?

Ces valeurs sont les lettres de l'alphabet dans des endroits, mais je ne pense pas que les codes de caractères normalement travailler comme ça. (Il a été longtemps que je tout cela alors peut-être que je suis juste mal remémoration.)

Quoi qu'il en soit, le fragment de code que vous avez est effectivement ce (au moins sur des architectures qui utilisent l'ordre de caractères ASCII, à savoir alphabétique):

// 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;
}

Comme mentionné dans mon autre commentaire, je pense qu'il y ait une autre vérification de code pour les touches Ctrl maintenue enfoncée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top