Bagikan melalui


Kelas CKeyboardManager

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

CObject

CKeyboardManager

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