如何将虚拟键码转换为字符码?

问题描述:

onkeydown()处理我得到219的键代码“[”;然而,'['的实际字符值是91。有什么办法来映射这两个?如何将虚拟键码转换为字符码?

如果您使用的是Windows,你应该看看ToUnicodeEx功能。

MapVirtualKey()也很有用。

第1步:打开VC++ 6.0
第2步:文件 - >新建 - >项目 - > Win32应用程序
给您的项目名称
步骤3:文件 - >新建 - >文件 - - > C++源文件
给您的文件名
步骤4:在你的CPP文件

/* Mfc program to handle virtual key codes. */ 
#include<afxwin.h> 
class myframe : public CFrameWnd 
{ 
public: 
    myframe() 
    { 
     Create(0,"Menu Program"); 
    } 
    void OnKeyDown(UINT n) 
    { 
     switch(n) 
     { 
     case VK_LEFT: 
      MessageBox("Left Arrow","Hellow"); 
      break; 
     case VK_RIGHT: 
      MessageBox("Right Arrow","Hellow"); 
      break; 
     case VK_UP: 
      MessageBox("Up Arrow","Hellow"); 
      break; 
     case VK_DOWN: 
      MessageBox("Down Arrow","Hellow"); 
      break; 
     case VK_NUMPAD0: 
      MessageBox("Number ZERO","Hellow"); 
      break; 
     case VK_NUMPAD9: 
      MessageBox("Number NINE","Hellow"); 
      break; 
     case VK_SPACE: 
      MessageBox("Space Bar","Hellow"); 
      break; 
     case VK_BACK: 
      MessageBox("BACK KEY","Hellow"); 
      break; 
     case VK_SHIFT: 
      MessageBox("SHIFT KEY","Hellow"); 
      break; 
     } 
    }  
    DECLARE_MESSAGE_MAP() 
}; 
BEGIN_MESSAGE_MAP(myframe,CFrameWnd) 
ON_WM_KEYDOWN() 
END_MESSAGE_MAP() 
class myapp : public CWinApp 
{ 
public: 
    int InitInstance() 
    { 
     m_pMainWnd=new myframe(); 
     m_pMainWnd->ShowWindow(3);  
     return 1; 
    } 
}; 
myapp app; 

步骤5:项目 - >设置 - >选择MFC作为共享DLL
步骤6:Bulid - - >编译
步骤7:体形 - >构建
步骤8:构建 - >执行