Domanda

Ho avuto qualche codice MFC più vecchio che ho scritto che sto "rinfrescare" un po '. Ho il seguente codice in una classe di finestra OnChar () gestore.

Io davvero non come l'utilizzo di costanti come 0x18. Mi piacerebbe rendere il codice più leggibile. So che posso dichiarare la mia, ma non ci sono le macro di Windows per questi valori? Non sono riuscito a trovare nulla di questo sul 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;
}
È stato utile?

Soluzione

Avete qualche codice sopra ci che sta sottraendo un offset da nChar?

Questi valori sono posti le lettere in alfabeto, ma non credo che i codici di carattere normalmente funziona così. (E 'stato molto tempo da quando ho usato nulla di tutto questo in modo forse sono solo mis-ricordo.)

In ogni caso, il frammento di codice che hai è efficacemente questo (almeno su architetture che utilizzano il carattere ordinamento ASCII, cioè alfabetico):

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

Come accennato nel mio altro commento, mi aspetto che ci sia qualche altro controllo codice per Ctrl che si terrà verso il basso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top