Klasa CKeyboardManager
Zarządza tabelami skrótów dla okien głównych ramek i okien ramek podrzędnych.
Składnia
class CKeyboardManager : public CObject
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CKeyboardManager::CKeyboardManager | CKeyboardManager Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CKeyboardManager::CleanUp | Czyści tabele skrótów. |
CKeyboardManager::FindDefaultAccelerator | Pobiera domyślny 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 skrótów dla polecenia, czy tylko domyślny skrótu. |
CKeyboardManager::LoadState | Ładuje tabele skrótów z rejestru systemu Windows. |
CKeyboardManager::ResetAll | Ponownie ładuje tabele skrótów z zasobu aplikacji. |
CKeyboardManager::SaveState | Zapisuje tabele skrótów w rejestrze systemu Windows. |
CKeyboardManager::ShowAllAccelerators | Określa, czy platforma wyświetla wszystkie skrótów dla wszystkich poleceń, czy jeden skrótu dla każdego polecenia. Ta metoda nie ma wpływu na polecenia, które mają tylko jeden skojarzony skrótu. |
CKeyboardManager::TranslateCharToUpper | Konwertuje znak na górny rejestr. |
CKeyboardManager::UpdateAccelTable | Aktualizuje tabelę skrótów za pomocą nowej tabeli skrótów. |
Uwagi
Elementy członkowskie tej klasy umożliwiają zapisywanie i ładowanie tabel skrótów do rejestru systemu Windows, używanie szablonu do aktualizowania tabel skróconego wycinania i znajdowanie domyślnego skrótu dla polecenia w oknie ramki. Ponadto obiekt umożliwia kontrolowanie sposobu CKeyboardManager
wyświetlania użytkownikowi 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 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 skrótów.
static void CleanUp();
Uwagi
Aby uzyskać więcej informacji na temat 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 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 skrótu. Następnie metoda pobiera ciąg skojarzony z tym 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 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 skrótu.
bIsDefaultFrame
[in] Parametr logiczny wskazujący, czy pWndFrame jest domyślnym oknem ramki.
Wartość zwracana
WARTOŚĆ TRUE, jeśli jest obsługiwany 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 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 skrótów skojarzone z poleceniami menu, czy tylko domyślne skrótów.
static BOOL IsShowAllAccelerators();
Wartość zwracana
Nonzero, jeśli aplikacja wyświetla listę wszystkich skrótów dla poleceń menu; 0, jeśli aplikacja wyświetla tylko domyślne skrótów.
Uwagi
Aplikacja wyświetla listę skrótów dla poleceń menu na pasku menu. Użyj funkcji CKeyboardManager::ShowAllAccelerators , aby kontrolować, czy aplikacja wyświetla listę wszystkich skrótów, czy tylko domyślne skrótów.
CKeyboardManager::LoadState
Ładuje tabele 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 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 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 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 skrótów. Jeśli wartość FALSE, zostanie wyświetlony tylko pierwszy skrótu.
lpszDelimiter
[in] Ciąg do wstawienia między skrótów. Ten ogranicznik nie ma wpływu, jeśli jest wyświetlany tylko jeden skrótu.
Uwagi
Domyślnie jeśli z poleceniem jest skojarzony więcej niż jeden skrótu, zostanie wyświetlony tylko pierwszy skrótu. Ta funkcja umożliwia wyświetlenie listy wszystkich skrótów skojarzonych ze wszystkimi poleceniami.
skrótów zostaną wyświetlone obok polecenia na pasku menu. Jeśli zostaną wyświetlone wszystkie skrótów, ciąg dostarczony przez lpszDelimiter rozdzieli poszczególne 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
Aktualizuje tabelę skrótów za pomocą nowej tabeli 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 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 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