我写了一些较旧的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;
}
答案 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是否被按下。