Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengelola tabel kunci pintasan untuk jendela bingkai utama dan jendela bingkai anak.
Sintaks
class CKeyboardManager : public CObject
Anggota
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
| CKeyboardManager::CKeyboardManager | Membuat CKeyboardManager objek. |
Metode Publik
| Nama | Deskripsi |
|---|---|
| CKeyboardManager::CleanUp | Menghapus tabel kunci pintasan. |
| CKeyboardManager::FindDefaultAccelerator | Mengambil kunci pintasan default untuk perintah dan jendela yang ditentukan. |
| CKeyboardManager::IsKeyHandled | Menentukan apakah kunci ditangani oleh tabel akselerator. |
| CKeyboardManager::IsKeyPrintable | Menunjukkan apakah karakter dapat dicetak. |
| CKeyboardManager::IsShowAllAccelerators | Menunjukkan apakah menu menampilkan semua kunci pintasan untuk perintah atau hanya kunci pintasan default. |
| CKeyboardManager::LoadState | Memuat tabel kunci pintasan dari registri Windows. |
| CKeyboardManager::ResetAll | Memuat ulang tabel kunci pintasan dari sumber daya aplikasi. |
| CKeyboardManager::SaveState | Menyimpan tabel kunci pintasan ke registri Windows. |
| CKeyboardManager::ShowAllAccelerators | Menentukan apakah kerangka kerja menampilkan semua kunci pintasan untuk semua perintah, atau satu kunci pintasan untuk setiap perintah. Metode ini tidak memengaruhi perintah yang hanya memiliki satu kunci pintasan terkait. |
| CKeyboardManager::TranslateCharToUpper | Mengonversi karakter ke register atasnya. |
| CKeyboardManager::UpdateAccelTable | Memperbarui tabel kunci pintasan dengan tabel kunci pintasan baru. |
Keterangan
Anggota kelas ini memungkinkan Anda menyimpan dan memuat tabel kunci pintasan ke registri Windows, menggunakan templat untuk memperbarui tabel kunci potong pendek, dan menemukan kunci pintasan default untuk perintah di jendela bingkai. Selain itu, CKeyboardManager objek memungkinkan Anda mengontrol bagaimana kunci pintasan ditampilkan kepada pengguna.
Anda tidak boleh membuat CKeyboardManager objek secara manual. Ini akan dibuat secara otomatis oleh kerangka kerja aplikasi Anda. Namun, Anda harus memanggil CWinAppEx::InitKeyboardManager selama proses inisialisasi aplikasi Anda. Untuk mendapatkan penunjuk ke manajer keyboard untuk aplikasi Anda, panggil CWinAppEx::GetKeyboardManager.
Contoh
Contoh berikut menunjukkan cara mengambil penunjuk ke CKeyboardManager objek dari CWinAppEx kelas, dan cara menampilkan semua kunci pintasan yang terkait dengan perintah menu. Cuplikan kode ini adalah bagian dari sampel Halaman Kustom.
// The GetKeyboardManager method is inherited from the CWinAppEx class.
CKeyboardManager *cKeyboardManager = GetKeyboardManager();
cKeyboardManager->ShowAllAccelerators();
Hierarki Warisan
Persyaratan
Header: afxkeyboardmanager.h
CKeyboardManager::CKeyboardManager
Membuat CKeyboardManager objek.
CKeyboardManager();
Keterangan
Dalam kebanyakan kasus, Anda tidak perlu membuat secara CKeyboardManager langsung. Secara default, kerangka kerja membuatnya untuk Anda. Untuk mendapatkan pointer ke CKeyboardManager, panggil CWinAppEx::GetKeyboardManager. Jika Anda membuatnya secara manual, Anda harus menginisialisasinya dengan metode CWinAppEx::InitKeyboardManager.
CKeyboardManager::CleanUp
CKeyboardManager Membebaskan sumber daya dan menghapus semua pemetaan kunci pintasan.
static void CleanUp();
Keterangan
Untuk informasi selengkapnya tentang tombol pintasan, lihat Kustomisasi Keyboard dan Mouse.
Anda tidak perlu memanggil fungsi ini ketika aplikasi Anda keluar karena kerangka kerja memanggilnya secara otomatis selama keluar aplikasi.
CKeyboardManager::FindDefaultAccelerator
Mengambil kunci pintasan default untuk perintah dan jendela yang ditentukan.
static BOOL FindDefaultAccelerator(
UINT uiCmd,
CString& str,
CFrameWnd* pWndFrame,
BOOL bIsDefaultFrame);
Parameter
uiCmd
[di] ID perintah.
Str
[out] Referensi ke CString objek.
pWndFrame
[di] Penunjuk ke jendela bingkai.
bIsDefaultFrame
[di] Menentukan apakah jendela bingkai adalah jendela bingkai default.
Tampilkan Nilai
Bukan nol jika pintasan ditemukan; jika tidak, 0.
Keterangan
Metode ini mencari perintah yang ditentukan oleh uiCmd dan mengambil kunci pintasan default. Kemudian metode mengambil string yang terkait dengan kunci pintasan ini dan menulis nilai ke parameter str .
CKeyboardManager::IsKeyHandled
Menentukan apakah kunci yang ditentukan ditangani oleh Kelas CKeyboardManager.
static BOOL __stdcall IsKeyHandled(
WORD nKey,
BYTE fVirt,
CFrameWnd* pWndFrame,
BOOL bIsDefaultFrame);
Parameter
nKey
[di] Kunci untuk diperiksa.
fVirt
[di] Menentukan perilaku kunci pintasan. Untuk daftar nilai yang mungkin, lihat Struktur ACCEL.
pWndFrame
[di] Jendela bingkai. Metode ini menentukan apakah kunci pintasan ditangani dalam bingkai ini.
bIsDefaultFrame
[di] Parameter Boolean yang menunjukkan apakah pWndFrame adalah jendela bingkai default.
Tampilkan Nilai
TRUE jika kunci pintasan ditangani. FALSE jika kunci tidak ditangani atau jika pWndFrame adalah NULL.
Keterangan
Parameter input harus cocok dengan entri dalam tabel akselerator baik untuk nKey dan fVirt untuk menentukan apakah kunci pintasan ditangani di pWndFrame.
CKeyboardManager::IsKeyPrintable
Menunjukkan apakah karakter dapat dicetak.
static BOOL __stdcall IsKeyPrintable(const UINT nChar);
Parameter
nChar
[di] Karakter yang diperiksa metode ini.
Tampilkan Nilai
Bukan nol jika karakter dapat dicetak, nol jika tidak.
Keterangan
Metode ini gagal jika panggilan ke GetKeyboardState gagal.
CKeyboardManager::IsShowAllAccelerators
Menunjukkan apakah menu menampilkan semua tombol pintasan yang terkait dengan perintah menu atau hanya tombol pintasan default.
static BOOL IsShowAllAccelerators();
Tampilkan Nilai
Bukan nol jika aplikasi mencantumkan semua kunci pintasan untuk perintah menu; 0 jika aplikasi hanya menampilkan kunci pintasan default.
Keterangan
Aplikasi mencantumkan kunci pintasan untuk perintah menu di bilah menu. Gunakan fungsi CKeyboardManager::ShowAllAccelerators untuk mengontrol apakah aplikasi mencantumkan semua kunci pintasan atau hanya kunci pintasan default.
CKeyboardManager::LoadState
Memuat tabel kunci pintasan dari registri Windows.
BOOL LoadState(
LPCTSTR lpszProfileName = NULL,
CFrameWnd* pDefaultFrame = NULL);
Parameter
lpszProfileName
[di] Jalur registri tempat CKeyboardManager data disimpan.
pDefaultFrame
[di] Penunjuk ke jendela bingkai untuk digunakan sebagai jendela default.
Tampilkan Nilai
Bukan nol jika status berhasil dimuat atau 0 sebaliknya.
Keterangan
Jika parameter lpszProfileName adalah NULL, metode ini memeriksa lokasi registri default untuk CKeyboardManager data. Lokasi registri default ditentukan oleh Kelas CWinAppEx. Data sebelumnya harus ditulis dengan metode CKeyboardManager::SaveState.
Jika Anda tidak menentukan jendela default, jendela bingkai utama aplikasi Anda akan digunakan.
CKeyboardManager::ResetAll
Memuat ulang tabel kunci pintasan dari sumber daya aplikasi.
void ResetAll();
Keterangan
Fungsi ini menghapus pintasan yang disimpan dalam CKeyboardManager instans. Kemudian akan memuat ulang status manajer keyboard dari sumber daya aplikasi.
CKeyboardManager::SaveState
Menyimpan tabel kunci pintasan ke registri Windows.
BOOL SaveState(
LPCTSTR lpszProfileName = NULL,
CFrameWnd* pDefaultFrame = NULL);
Parameter
lpszProfileName
[di] Jalur registri untuk menyimpan status CKeyboardManager .
pDefaultFrame
[di] Penunjuk ke jendela bingkai yang menjadi jendela default.
Tampilkan Nilai
Bukan nol jika status manajer keyboard berhasil disimpan, atau 0 sebaliknya.
Keterangan
Jika parameter lpszProfileName adalah NULL, metode ini akan menulis CKeyboardManager status ke lokasi default yang ditentukan oleh Kelas CWinAppEx. Jika Anda menentukan lokasi, Anda dapat memuat data nanti menggunakan metode CKeyboardManager::LoadState.
Jika Anda tidak menentukan jendela default, jendela bingkai utama akan digunakan sebagai jendela default.
CKeyboardManager::ShowAllAccelerators
Menampilkan semua tombol pintasan yang terkait dengan perintah menu.
static void ShowAllAccelerators(
BOOL bShowAll = TRUE,
LPCTSTR lpszDelimiter = _afxDefaultAcceleratorDelimiter);
Parameter
bShowAll
[di] Jika TRUE, semua kunci pintasan akan ditampilkan. Jika FALSE, hanya kunci pintasan pertama yang akan ditampilkan.
lpszDelimiter
[di] String untuk disisipkan di antara kunci pintasan. Pemisah ini tidak berpengaruh jika hanya satu kunci pintasan yang ditampilkan.
Keterangan
Secara default, jika perintah memiliki lebih dari satu kunci pintasan yang terkait dengannya, hanya kunci pintasan pertama yang akan ditampilkan. Fungsi ini memungkinkan Anda untuk mencantumkan semua kunci pintasan yang terkait dengan semua perintah.
Tombol pintasan akan dicantumkan di samping perintah di bilah menu. Jika semua kunci pintasan ditampilkan, string yang disediakan oleh lpszDelimiter akan memisahkan kunci pintasan individual.
CKeyboardManager::TranslateCharToUpper
Mengonversi karakter ke register atasnya.
static UINT TranslateCharToUpper(const UINT nChar);
Parameter
nChar
[di] Karakter yang akan dikonversi.
Tampilkan Nilai
Karakter yang merupakan register atas parameter input.
CKeyboardManager::UpdateAccelTable
Memperbarui tabel kunci pintasan dengan tabel kunci pintasan baru.
BOOL UpdateAccelTable(
CMultiDocTemplate* pTemplate,
LPACCEL lpAccel,
int nSize,
CFrameWnd* pDefaultFrame = NULL);
BOOL UpdateAccelTable(
CMultiDocTemplate* pTemplate,
HACCEL hAccelNew,
CFrameWnd* pDefaultFrame = NULL);
Parameter
pTemplate
[di] Penunjuk ke templat dokumen.
lpAccel
[di] Penunjuk ke kunci pintasan baru.
nSize
[di] Ukuran tabel pintasan baru.
pDefaultFrame
[di] Penunjuk ke jendela bingkai default.
hAccelNew
[di] Handel ke tabel pintasan baru.
Tampilkan Nilai
Bukan nol jika metode berhasil; jika tidak, 0.
Keterangan
Gunakan fungsi ini untuk mengganti tabel pintasan yang ada dengan kunci pintasan baru untuk beberapa objek jendela bingkai. Fungsi ini menerima templat dokumen sebagai parameter untuk mendapatkan akses ke semua objek jendela bingkai yang terhubung ke templat dokumen yang diberikan.
Lihat juga
Bagan Hierarki
Kelas
Kelas CWinAppEx
CWinAppEx::InitKeyboardManager
Kustomisasi Keyboard dan Mouse