我写了一些较旧的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