Udostępnij za pośrednictwem


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

Obiekt 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 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