Pregunta

Tengo un poco de código antiguo MFC escribí que estoy "refrescar" un poco. Tengo el siguiente código en una clase de ventana OnChar () manejador.

Realmente no me gusta usar constantes como 0x18. Me gustaría hacer el código más legible. Sé que puedo declarar mi cuenta, pero no habrá ninguna macros de Windows para estos valores? No pude encontrar nada acerca de esto en la 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;
}
¿Fue útil?

Solución

¿Tiene algún código anterior hay que está restando un desplazamiento desde nChar?

Estos valores son los lugares de las letras en el alfabeto, pero no creo que los códigos de caracteres que normalmente funciona así. (Ha pasado mucho tiempo desde que utiliza cualquiera de este modo tal vez estoy mal recuerdo.)

De todos modos, el fragmento de código que tiene es efectivamente esto (al menos en las arquitecturas que utilizan el carácter ASCII de pedidos, es decir alfabético):

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

Como se ha mencionado en mi otro comentario, me gustaría esperar que haya alguna otra comprobación de código para lo mantiene pulsado Ctrl.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top