Bagikan melalui


Fungsi MapVirtualKeyExW (winuser.h)

Menerjemahkan (memetakan) kode kunci virtual ke dalam kode pemindaian atau nilai karakter, atau menerjemahkan kode pemindaian ke dalam kode kunci virtual. Fungsi ini menerjemahkan kode menggunakan bahasa input dan pengidentifikasi lokal input.

Sintaksis

UINT MapVirtualKeyExW(
  [in]                UINT uCode,
  [in]                UINT uMapType,
  [in, out, optional] HKL  dwhkl
);

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 Arti
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 Komentar.
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.

[in, out, optional] dwhkl

Jenis: HKL

Masukkan pengidentifikasi lokal yang akan digunakan untuk menerjemahkan kode yang ditentukan. Parameter ini dapat menjadi pengidentifikasi lokal input yang sebelumnya dikembalikan oleh fungsi LoadKeyboardLayout.

Mengembalikan nilai

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.

Komentar

Pengidentifikasi lokal input adalah konsep yang lebih luas daripada tata letak keyboard, karena juga dapat mencakup pengonversi ucapan ke teks, Editor Metode Input (IME), atau bentuk input lainnya.

Aplikasi dapat menggunakan MapVirtualKeyEx 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 MapVirtualKeyEx dengan uCode 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 GetKeyboardState, SetKeyboardState, GetAs fungsi, GetKeyState, MapVirtualKey, dan MapVirtualKey Ex. 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 ToUnicode.

Nota

Header winuser.h mendefinisikan MapVirtualKeyEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur 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

Syarat Nilai
klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Platform Target Windows
Header winuser.h (termasuk Windows.h)
Pustaka User32.lib
DLL User32.dll

Lihat juga

  • GetAsyncKeyState
  • GetKeyState
  • GetKeyboardState
  • GetSystemMetrics
  • MapVirtualKey
  • SetKeyboardState
  • LoadKeyboardLayout
  • Input Keyboard
  • Gambaran Umum Input Keyboard