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

Cobject

Ckeyboardmanager

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ę CKeyboardManagerCWinAppEx::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