Không có chức năng nào mà tôi biết sẽ vẽ bản đồ ký tự cho mã khóa ảo. Tuy nhiên, bạn có thể sử dụng bảng sau để bắt đầu xây dựng bản đồ như vậy.
http://msdn.microsoft.com/en-us/library/dd375731(v=VS.85).aspx.
Lưu ý rằng bạn sẽ cần phải biết bàn phím, nhìn vào phím bạn đề cập '\' đây là khóa ảo VK_OEM_5 cho bàn phím US là '\' nếu không được dịch chuyển và '|' nếu được dịch chuyển, vì vậy chức năng của bạn sẽ cần biết bàn phím cũng được sử dụng.
Tất nhiên nếu bạn muốn ánh xạ từ mã khóa ảo sang ký tự, bạn có thể sử dụng interop để gọi hàm MapVirtualKeyEx.
Cập nhật Dựa trên nhận xét của bạn, điều này sẽ cung cấp cho bạn những gì bạn muốn.
[DllImport("user32.dll")]
static extern int MapVirtualKey(int uCode, uint uMapType);
const uint MAPVK_VK_TO_CHAR = 0x02;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
int key = MapVirtualKey((int)e.KeyCode, MAPVK_VK_TO_CHAR);
if (key == (int)'\\')
{
}
}
Nguồn
2010-05-24 17:24:59
Bạn đã bao giờ giải quyết vấn đề này thành công chưa? Bạn vẫn cần trợ giúp với điều này? – jcolebrand
Bạn đã thấy câu trả lời này chưa? http://stackoverflow.com/questions/318777/c-how-to-translate-virtual-keycode-to-char – jcolebrand
Có. Tôi cần chuyển đổi từ char sang int. Và tôi cần một giải pháp nền tảng riêng. Nếu không có WM_Messages ... –