ctrl+x,ctrl+c和ctrl+v的Windows常数
-
14-10-2019 - |
题
我写了一些较旧的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的代码检查。
不隶属于 StackOverflow