Fungsi TranslateAcceleratorA (winuser.h)
Memproses kunci akselerator untuk perintah menu. Fungsi ini menerjemahkan pesan WM_KEYDOWN atau WM_SYSKEYDOWN ke pesan WM_COMMAND atau WM_SYSCOMMAND (jika ada entri untuk kunci dalam tabel akselerator yang ditentukan) lalu mengirim pesan WM_COMMAND atau WM_SYSCOMMAND langsung ke prosedur jendela yang ditentukan. TranslateAccelerator tidak kembali sampai prosedur jendela memproses pesan.
Sintaks
int TranslateAcceleratorA(
[in] HWND hWnd,
[in] HACCEL hAccTable,
[in] LPMSG lpMsg
);
Parameter
[in] hWnd
Jenis: HWND
Handel ke jendela yang pesannya akan diterjemahkan.
[in] hAccTable
Jenis: HACCEL
Handel ke tabel akselerator. Tabel akselerator harus dimuat oleh panggilan ke fungsi LoadAccelerators atau dibuat oleh panggilan ke fungsi CreateAcceleratorTable .
[in] lpMsg
Jenis: LPMSG
Penunjuk ke struktur MSG yang berisi informasi pesan yang diambil dari antrean pesan utas panggilan menggunakan fungsi GetMessage atau PeekMessage .
Nilai kembali
Jenis: int
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Untuk membedakan pesan yang dikirim fungsi ini dari pesan yang dikirim oleh menu atau kontrol, kata urutan tinggi dari parameter wParam dari pesan WM_COMMAND atau WM_SYSCOMMAND berisi nilai 1.
Kombinasi kunci Akselerator yang digunakan untuk memilih item dari menu jendela diterjemahkan ke dalam pesan WM_SYSCOMMAND ; semua kombinasi kunci akselerator lainnya diterjemahkan ke dalam pesan WM_COMMAND .
Ketika TranslateAccelerator mengembalikan nilai bukan nol dan pesan diterjemahkan, aplikasi tidak boleh menggunakan fungsi TranslateMessage untuk memproses pesan lagi.
Akselerator tidak perlu sesuai dengan perintah menu.
Jika perintah akselerator sesuai dengan item menu, aplikasi dikirim WM_INITMENU dan WM_INITMENUPOPUP pesan, seolah-olah pengguna mencoba menampilkan menu. Namun, pesan-pesan ini tidak dikirim jika ada salah satu kondisi berikut:
- Jendela dinonaktifkan.
- Kombinasi tombol akselerator tidak sesuai dengan item pada menu jendela dan jendela diminimalkan.
- Penangkapan mouse berlaku. Untuk informasi tentang pengambilan mouse, lihat fungsi SetCapture .
Jika terjadi penekanan tombol akselerator yang sesuai dengan item menu saat jendela yang memiliki menu diminimalkan, TranslateAccelerator tidak mengirim pesan WM_COMMAND . Namun, jika terjadi penekanan tombol akselerator yang tidak cocok dengan item apa pun di menu jendela atau di menu jendela , fungsi mengirimkan pesan WM_COMMAND , bahkan jika jendela diminimalkan.
Contoh
Misalnya, lihat Membuat Akselerator untuk Atribut Font.
Catatan
Header winuser.h mendefinisikan TranslateAccelerator 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
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
Konseptual
Referensi