Bagikan melalui


Fungsi MapVirtualKeyA (winuser.h)

Menerjemahkan (memetakan) kode kunci virtual ke dalam kode pemindaian atau nilai karakter, atau menerjemahkan kode pemindaian ke dalam kode kunci virtual.

Sintaks

UINT MapVirtualKeyA(
  [in] UINT uCode,
  [in] UINT uMapType
);

Parameter

[in] uCode

Jenis: UINT

Kode kunci virtual atau kode pemindaian untuk kunci. Bagaimana nilai ini ditafsirkan tergantung pada nilai parameter uMapType .

[in] uMapType

Jenis: UINT

Terjemahan yang akan dilakukan. Nilai parameter ini tergantung pada nilai parameter uCode .

Nilai Makna
MAPVK_VK_TO_VSC
0
Parameter uCode adalah kode kunci virtual dan diterjemahkan ke dalam kode pemindaian. Jika ini adalah kode kunci virtual yang tidak membedakan antara kunci kiri dan kanan, kode pemindaian sebelah kiri dikembalikan. Jika tidak ada terjemahan, fungsi mengembalikan 0.
MAPVK_VSC_TO_VK
1
Parameter uCode adalah kode pemindaian dan diterjemahkan ke dalam kode kunci virtual yang tidak membedakan antara kunci kiri dan kanan. Jika tidak ada terjemahan, fungsi mengembalikan 0.
Windows Vista dan yang lebih baru: byte tinggi dari nilai uCode dapat berisi 0xe0 atau 0xe1 untuk menentukan kode pemindaian yang diperluas.
MAPVK_VK_TO_CHAR
2
Parameter uCode adalah kode kunci virtual dan diterjemahkan ke dalam nilai karakter yang tidak di-shift dalam kata urutan rendah dari nilai yang dikembalikan. Tombol mati (diakritik) ditunjukkan dengan mengatur bit atas nilai yang dikembalikan. Jika tidak ada terjemahan, fungsi mengembalikan 0. Lihat Keterangan.
MAPVK_VSC_TO_VK_EX
3
Parameter uCode adalah kode pemindaian dan diterjemahkan ke dalam kode kunci virtual yang membedakan antara kunci kiri dan kanan. Jika tidak ada terjemahan, fungsi mengembalikan 0.
Windows Vista dan yang lebih baru: byte tinggi dari nilai uCode dapat berisi 0xe0 atau 0xe1 untuk menentukan kode pemindaian yang diperluas.
MAPVK_VK_TO_VSC_EX
4
Windows Vista dan yang lebih baru: Parameter uCode adalah kode kunci virtual dan diterjemahkan ke dalam kode pemindaian. Jika ini adalah kode kunci virtual yang tidak membedakan antara kunci kiri dan kanan, kode pemindaian sebelah kiri dikembalikan. Jika kode pemindaian adalah kode pemindaian yang diperluas, byte tinggi dari nilai yang dikembalikan akan berisi 0xe0 atau 0xe1 untuk menentukan kode pemindaian yang diperluas. Jika tidak ada terjemahan, fungsi mengembalikan 0.

Nilai kembali

Jenis: UINT

Nilai yang dikembalikan adalah kode pemindaian, kode kunci virtual, atau nilai karakter, tergantung pada nilai uCode dan uMapType. Jika tidak ada terjemahan, nilai yang dikembalikan adalah nol.

Keterangan

Untuk menentukan handel ke tata letak keyboard yang akan digunakan untuk menerjemahkan kode yang ditentukan, gunakan fungsi MapVirtualKeyEx .

Aplikasi dapat menggunakan MapVirtualKey untuk menerjemahkan kode pemindaian ke konstanta kode kunci virtual VK_SHIFT, VK_CONTROL, dan VK_MENU, dan sebaliknya. Terjemahan ini tidak membedakan antara instans kiri dan kanan tombol SHIFT, CTRL, atau ALT.

Aplikasi bisa mendapatkan kode pemindaian yang sesuai dengan instans kiri atau kanan salah satu kunci ini dengan memanggil MapVirtualKey dengan uCode yang diatur ke salah satu konstanta kode kunci virtual berikut:

  • VK_LSHIFT
  • VK_RSHIFT
  • VK_LCONTROL
  • VK_RCONTROL
  • VK_LMENU
  • VK_RMENU

Konstanta pembeda kiri dan kanan ini hanya tersedia untuk aplikasi melalui fungsi GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, MapVirtualKey, dan MapVirtualKeyEx . Untuk daftar tabel lengkap kode kunci virtual, lihat Kode Kunci Virtual.

Dalam mode MAPVK_VK_TO_CHARkode kunci virtual, 'A'.. ' Kunci Z' diterjemahkan ke huruf besar 'A'..' Karakter Z terlepas dari tata letak keyboard saat ini. Jika Anda ingin menerjemahkan kode kunci virtual ke karakter yang sesuai, gunakan fungsi ToAscii .

Catatan

Header winuser.h mendefinisikan MapVirtualKey sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winuser.h (sertakan Windows.h)
Pustaka User32.lib
DLL User32.dll

Lihat juga