Klasa CKeyboardManager
Zarządza tabelami klawiszy skrótów dla okien głównych ramek i okien ramek podrzędnych.
Składnia
class CKeyboardManager : public CObject
Członkowie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CKeyboardManager::CKeyboardManager | CKeyboardManager Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CKeyboardManager::CleanUp | Czyści tabele klawiszy skrótów. |
CKeyboardManager::FindDefaultAccelerator | Pobiera domyślny klawisz skrótu dla określonego polecenia i okna. |
CKeyboardManager::IsKeyHandled | Określa, czy klucz jest obsługiwany przez tabelę akceleratora. |
CKeyboardManager::IsKeyPrintable | Wskazuje, czy znak jest drukowalny. |
CKeyboardManager::IsShowAllAccelerators | Wskazuje, czy menu wyświetlają wszystkie klawisze skrótów dla polecenia, czy tylko domyślny klawisz skrótu. |
CKeyboardManager::LoadState | Ładuje tabele klawiszy skrótów z rejestru systemu Windows. |
CKeyboardManager::ResetAll | Ponownie ładuje tabele klawiszy skrótów z zasobu aplikacji. |
CKeyboardManager::SaveState | Zapisuje tabele klawiszy skrótów w rejestrze systemu Windows. |
CKeyboardManager::ShowAllAccelerators | Określa, czy platforma wyświetla wszystkie klawisze skrótów dla wszystkich poleceń, czy jeden klawisz skrótu dla każdego polecenia. Ta metoda nie ma wpływu na polecenia, które mają tylko jeden skojarzony klawisz skrótu. |
CKeyboardManager::TranslateCharToUpper | Konwertuje znak na górny rejestr. |
CKeyboardManager::UpdateAccelTable | Aktualizacje tabeli klawiszy skrótów z nową tabelą klawiszy skrótów. |
Uwagi
Elementy członkowskie tej klasy umożliwiają zapisywanie i ładowanie tabel klawiszy skrótów do rejestru systemu Windows, używanie szablonu do aktualizowania tabel klawiszy skróconego wycinania i znajdowanie domyślnego klawisza skrótu dla polecenia w oknie ramki. Ponadto obiekt umożliwia kontrolowanie sposobu CKeyboardManager
wyświetlania użytkownikowi klawiszy skrótów.
Nie należy ręcznie tworzyć CKeyboardManager
obiektu. Zostanie ona utworzona automatycznie przez strukturę aplikacji. Należy jednak wywołać metodę CWinAppEx::InitKeyboardManager podczas procesu inicjowania aplikacji. Aby uzyskać wskaźnik do menedżera klawiatury dla aplikacji, wywołaj polecenie CWinAppEx::GetKeyboardManager.
Przykład
W poniższym przykładzie pokazano, jak pobrać wskaźnik do CKeyboardManager
obiektu z CWinAppEx
klasy oraz pokazać wszystkie klawisze skrótów skojarzone z poleceniami menu. Ten fragment kodu jest częścią przykładu Custom Pages.
// The GetKeyboardManager method is inherited from the CWinAppEx class.
CKeyboardManager *cKeyboardManager = GetKeyboardManager();
cKeyboardManager->ShowAllAccelerators();
Hierarchia dziedziczenia
Wymagania
Nagłówek: afxkeyboardmanager.h
CKeyboardManager::CKeyboardManager
CKeyboardManager
Tworzy obiekt.
CKeyboardManager();
Uwagi
W większości przypadków nie trzeba tworzyć bezpośrednio CKeyboardManager
. Domyślnie platforma tworzy jedną dla Ciebie. Aby uzyskać wskaźnik do elementu , wywołaj metodę CKeyboardManager
CWinAppEx::GetKeyboardManager. Jeśli utworzysz jedną ręcznie, musisz zainicjować ją za pomocą metody CWinAppEx::InitKeyboardManager.
CKeyboardManager::CleanUp
CKeyboardManager
Zwalnia zasoby i czyści wszystkie mapowania klawiszy skrótów.
static void CleanUp();
Uwagi
Aby uzyskać więcej informacji na temat klawiszy skrótów, zobacz Dostosowywanie klawiatury i myszy.
Nie trzeba wywoływać tej funkcji, gdy aplikacja kończy działanie, ponieważ platforma wywołuje ją automatycznie podczas zamykania aplikacji.
CKeyboardManager::FindDefaultAccelerator
Pobiera domyślny klawisz skrótu dla określonego polecenia i okna.
static BOOL FindDefaultAccelerator(
UINT uiCmd,
CString& str,
CFrameWnd* pWndFrame,
BOOL bIsDefaultFrame);
Parametry
Uicmd
[in] Identyfikator polecenia.
Str
[out] Odwołanie do CString
obiektu.
pWndFrame
[in] Wskaźnik do okna ramki.
bIsDefaultFrame
[in] Określa, czy okno ramki jest domyślnym oknem ramki.
Wartość zwracana
Nonzero, jeśli skrót zostanie znaleziony; w przeciwnym razie 0.
Uwagi
Ta metoda wyszukuje polecenie określone przez uiCmd i pobiera domyślny klawisz skrótu. Następnie metoda pobiera ciąg skojarzony z tym klawiszem skrótu i zapisuje wartość parametru str .
CKeyboardManager::IsKeyHandled
Określa, czy określony klucz jest obsługiwany przez klasę CKeyboardManager.
static BOOL __stdcall IsKeyHandled(
WORD nKey,
BYTE fVirt,
CFrameWnd* pWndFrame,
BOOL bIsDefaultFrame);
Parametry
nKey
[in] Klucz do sprawdzenia.
fVirt
[in] Określa zachowanie klawisza skrótu. Aby uzyskać listę możliwych wartości, zobacz ACCEL Structure (Struktura ACCEL).
pWndFrame
[in] Okno ramowe. Ta metoda określa, czy w tej ramce jest obsługiwany klawisz skrótu.
bIsDefaultFrame
[in] Parametr logiczny wskazujący, czy pWndFrame jest domyślnym oknem ramki.
Wartość zwracana
WARTOŚĆ TRUE, jeśli jest obsługiwany klawisz skrótu. FAŁSZ, jeśli klucz nie jest obsługiwany lub jeśli element pWndFrame ma wartość NULL.
Uwagi
Parametry wejściowe muszą być zgodne z wpisem w tabeli akceleratora zarówno dla parametrów nKey, jak i fVirt, aby określić, czy w pWndFrame jest obsługiwany klawisz skrótu.
CKeyboardManager::IsKeyPrintable
Wskazuje, czy znak jest drukowalny.
static BOOL __stdcall IsKeyPrintable(const UINT nChar);
Parametry
Nchar
[in] Znak sprawdzany przez tę metodę.
Wartość zwracana
Nonzero, jeśli znak jest drukowalny, zero, jeśli nie.
Uwagi
Ta metoda kończy się niepowodzeniem, jeśli wywołanie metody GetKeyboardState zakończy się niepowodzeniem.
CKeyboardManager::IsShowAllAccelerators
Wskazuje, czy w menu są wyświetlane wszystkie klawisze skrótów skojarzone z poleceniami menu, czy tylko domyślne klawisze skrótów.
static BOOL IsShowAllAccelerators();
Wartość zwracana
Nonzero, jeśli aplikacja wyświetla listę wszystkich klawiszy skrótów dla poleceń menu; 0, jeśli aplikacja wyświetla tylko domyślne klawisze skrótów.
Uwagi
Aplikacja wyświetla listę klawiszy skrótów dla poleceń menu na pasku menu. Użyj funkcji CKeyboardManager::ShowAllAccelerators , aby kontrolować, czy aplikacja wyświetla listę wszystkich klawiszy skrótów, czy tylko domyślne klawisze skrótów.
CKeyboardManager::LoadState
Ładuje tabele klawiszy skrótów z rejestru systemu Windows.
BOOL LoadState(
LPCTSTR lpszProfileName = NULL,
CFrameWnd* pDefaultFrame = NULL);
Parametry
lpszProfileName
[in] Ścieżka rejestru, w której CKeyboardManager
są zapisywane dane.
pDefaultFrame
[in] Wskaźnik do okna ramki do użycia jako okno domyślne.
Wartość zwracana
Niezero, jeśli stan został załadowany pomyślnie lub 0 w przeciwnym razie.
Uwagi
Jeśli parametr lpszProfileName ma wartość NULL, ta metoda sprawdza domyślną lokalizację rejestru dla CKeyboardManager
danych. Domyślna lokalizacja rejestru jest określana przez klasę CWinAppEx. Dane muszą być wcześniej zapisywane przy użyciu metody CKeyboardManager::SaveState.
Jeśli nie określisz okna domyślnego, zostanie użyte główne okno ramki aplikacji.
CKeyboardManager::ResetAll
Ponownie ładuje tabele klawiszy skrótów z zasobu aplikacji.
void ResetAll();
Uwagi
Ta funkcja czyści skróty przechowywane w wystąpieniu CKeyboardManager
. Następnie ponownie załaduje stan menedżera klawiatury z zasobu aplikacji.
CKeyboardManager::SaveState
Zapisuje tabele klawiszy skrótów w rejestrze systemu Windows.
BOOL SaveState(
LPCTSTR lpszProfileName = NULL,
CFrameWnd* pDefaultFrame = NULL);
Parametry
lpszProfileName
[in] Ścieżka rejestru do zapisywania CKeyboardManager
stanu.
pDefaultFrame
[in] Wskaźnik do okna ramki, który staje się domyślnym oknem.
Wartość zwracana
Nonzero, jeśli stan menedżera klawiatury został zapisany pomyślnie lub 0 w przeciwnym razie.
Uwagi
Jeśli parametr lpszProfileName ma wartość NULL, ta metoda zapisze CKeyboardManager
stan w domyślnej lokalizacji określonej przez klasę CWinAppEx. Jeśli określisz lokalizację, możesz załadować dane później przy użyciu metody CKeyboardManager::LoadState.
Jeśli nie określisz okna domyślnego, główne okno ramki będzie używane jako okno domyślne.
CKeyboardManager::ShowAllAccelerators
Przedstawia wszystkie klawisze skrótów skojarzone z poleceniami menu.
static void ShowAllAccelerators(
BOOL bShowAll = TRUE,
LPCTSTR lpszDelimiter = _afxDefaultAcceleratorDelimiter);
Parametry
bShowAll
[in] Jeśli wartość TRUE, zostaną wyświetlone wszystkie klawisze skrótów. Jeśli wartość FALSE, zostanie wyświetlony tylko pierwszy klawisz skrótu.
lpszDelimiter
[in] Ciąg do wstawienia między klawiszami skrótów. Ten ogranicznik nie ma wpływu, jeśli jest wyświetlany tylko jeden klawisz skrótu.
Uwagi
Domyślnie jeśli z poleceniem jest skojarzony więcej niż jeden klawisz skrótu, zostanie wyświetlony tylko pierwszy klawisz skrótu. Ta funkcja umożliwia wyświetlenie listy wszystkich klawiszy skrótów skojarzonych ze wszystkimi poleceniami.
Klawisze skrótów zostaną wyświetlone obok polecenia na pasku menu. Jeśli zostaną wyświetlone wszystkie klawisze skrótów, ciąg dostarczony przez lpszDelimiter rozdzieli poszczególne klawisze skrótów.
CKeyboardManager::TranslateCharToUpper
Konwertuje znak na górny rejestr.
static UINT TranslateCharToUpper(const UINT nChar);
Parametry
Nchar
[in] Znak do konwersji.
Wartość zwracana
Znak, który jest górnym rejestrem parametru wejściowego.
CKeyboardManager::UpdateAccelTable
Aktualizacje tabeli klawiszy skrótów z nową tabelą klawiszy skrótów.
BOOL UpdateAccelTable(
CMultiDocTemplate* pTemplate,
LPACCEL lpAccel,
int nSize,
CFrameWnd* pDefaultFrame = NULL);
BOOL UpdateAccelTable(
CMultiDocTemplate* pTemplate,
HACCEL hAccelNew,
CFrameWnd* pDefaultFrame = NULL);
Parametry
pTemplate
[in] Wskaźnik do szablonu dokumentu.
lpAccel
[in] Wskaźnik do nowego klawisza skrótu.
nSize
[in] Rozmiar nowej tabeli skrótów.
pDefaultFrame
[in] Wskaźnik do domyślnego okna ramki.
hAccelNew
[in] Uchwyt do nowej tabeli skrótów.
Wartość zwracana
Nonzero, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Użyj tej funkcji, aby zastąpić istniejącą tabelę skrótów nowymi klawiszami skrótów dla kilku obiektów okien ramowych. Funkcja odbiera szablon dokumentu jako parametr umożliwiający uzyskanie dostępu do wszystkich obiektów okien ramowych połączonych z danym szablonem dokumentu.
Zobacz też
Wykres hierarchii
Klasy
Klasa CWinAppEx
CWinAppEx::InitKeyboardManager
Dostosowywanie klawiatury i myszy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla