我已经写了一些旧的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;
}发布于 2010-12-30 16:00:47
上面有没有从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被按住。
https://stackoverflow.com/questions/4559851
复制相似问题