Константы Windows для Ctrl + X, Ctrl + C и Ctrl + V - PullRequest
0 голосов
/ 30 декабря 2010

У меня есть какой-то старый код 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;
}

1 Ответ

2 голосов
/ 30 декабря 2010

У вас есть какой-то код выше, который вычитает смещение из 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.

...