Ctrl常量,Ctrl + C和Ctrl + V的Windows常量

时间:2010-12-30 03:45:24

标签: windows mfc character-codes

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

答案 0 :(得分:2)

你上面有一些代码从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是否被按下。