다음을 통해 공유


CKeyboardManager 클래스

주 프레임 창 및 자식 프레임 창에 대한 바로 가기 키 테이블을 관리합니다.

구문

class CKeyboardManager : public CObject

멤버

공용 생성자

속성 설명
CKeyboardManager::CKeyboardManager CKeyboardManager 개체를 생성합니다.

공용 메서드

이름 설명
CKeyboardManager::CleanUp 바로 가기 키 테이블을 지웁니다.
CKeyboardManager::FindDefaultAccelerator 지정된 명령 및 창의 기본 바로 가기 키를 검색합니다.
CKeyboardManager::IsKeyHandled 키가 가속기 테이블에서 처리되는지 여부를 결정합니다.
CKeyboardManager::IsKeyPrintable 문자를 인쇄할 수 있는지 여부를 나타냅니다.
CKeyboardManager::IsShowAllAccelerators 메뉴에 명령에 대한 모든 바로 가기 키가 표시되는지 또는 기본 바로 가기 키만 표시할지 여부를 나타냅니다.
CKeyboardManager::LoadState Windows 레지스트리에서 바로 가기 키 테이블을 로드합니다.
CKeyboardManager::ResetAll 애플리케이션 리소스에서 바로 가기 키 테이블을 다시 로드합니다.
CKeyboardManager::SaveState 바로 가기 키 테이블을 Windows 레지스트리에 저장합니다.
CKeyboardManager::ShowAllAccelerators 프레임워크에서 모든 명령에 대한 모든 바로 가기 키를 표시할지, 아니면 각 명령에 대한 단일 바로 가기 키를 표시할지를 지정합니다. 이 메서드는 연결된 바로 가기 키가 하나만 있는 명령에는 영향을 주지 않습니다.
CKeyboardManager::TranslateCharToUpper 문자를 상한 레지스터로 변환합니다.
CKeyboardManager::UpdateAccelTable 새 바로 가기 키 테이블로 바로 가기 키 테이블을 업데이트합니다.

설명

이 클래스의 멤버를 사용하면 바로 가기 키 테이블을 저장하고 Windows 레지스트리에 로드하고, 템플릿을 사용하여 바로 가기 키 테이블을 업데이트하고, 프레임 창에서 명령에 대한 기본 바로 가기 키를 찾을 수 있습니다. 또한 개체를 CKeyboardManager 사용하여 사용자에게 바로 가기 키를 표시하는 방법을 제어할 수 있습니다.

개체를 CKeyboardManager 수동으로 만들면 안 됩니다. 애플리케이션의 프레임워크에 의해 자동으로 만들어집니다. 그러나 애플리케이션 초기화 프로세스 중에 CWinAppEx::InitKeyboardManager를 호출해야 합니다. 애플리케이션의 키보드 관리자에 대한 포인터를 얻으려면 CWinAppEx::GetKeyboardManager를 호출합니다.

예시

다음 예제에서는 클래스에서 CWinAppEx 개체에 대한 포인터를 CKeyboardManager 검색하는 방법과 메뉴 명령과 연결된 모든 바로 가기 키를 표시하는 방법을 보여 줍니다. 이 코드 조각은 사용자 지정 페이지 샘플일부입니다.

// The GetKeyboardManager method is inherited from the CWinAppEx class.
CKeyboardManager *cKeyboardManager = GetKeyboardManager();
cKeyboardManager->ShowAllAccelerators();

상속 계층 구조

CObject

CKeyboardManager

요구 사항

헤더: afxkeyboardmanager.h

CKeyboardManager::CKeyboardManager

CKeyboardManager 개체를 생성합니다.

CKeyboardManager();

설명

대부분의 경우 직접 만들 CKeyboardManager 필요가 없습니다. 기본적으로 프레임워크는 자동으로 만듭니다. 포인터CKeyboardManager를 얻으려면 CWinAppEx::GetKeyboardManager를 호출합니다. 수동으로 만드는 경우 CWinAppEx::InitKeyboardManager 메서드를 사용하여 초기화해야 합니다.

CKeyboardManager::CleanUp

리소스를 CKeyboardManager 해제하고 모든 바로 가기 키 매핑을 지웁니다.

static void CleanUp();

설명

바로 가기 키에 대한 자세한 내용은 키보드 및 마우스 사용자 지정을 참조 하세요.

애플리케이션이 종료되는 동안 프레임워크에서 자동으로 호출하기 때문에 애플리케이션이 종료되면 이 함수를 호출할 필요가 없습니다.

CKeyboardManager::FindDefaultAccelerator

지정된 명령 및 창의 기본 바로 가기 키를 검색합니다.

static BOOL FindDefaultAccelerator(
    UINT uiCmd,
    CString& str,
    CFrameWnd* pWndFrame,
    BOOL bIsDefaultFrame);

매개 변수

uiCmd
[in] 명령 ID입니다.

str
[out] CString 개체에 대한 참조입니다.

pWndFrame
[in] 프레임 창에 대한 포인터입니다.

bIsDefaultFrame
[in] 프레임 창이 기본 프레임 창인지 여부를 지정합니다.

Return Value

바로 가기를 찾은 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 메서드는 uiCmd지정된 명령을 조회하고 기본 바로 가기 키를 검색합니다. 그런 다음 메서드는 이 바로 가기 키와 연결된 문자열을 가져와서 값을 str 매개 변수에 씁니다.

CKeyboardManager::IsKeyHandled

지정된 키가 CKeyboardManager 클래스에서 처리되는지 여부를 확인합니다.

static BOOL __stdcall IsKeyHandled(
    WORD nKey,
    BYTE fVirt,
    CFrameWnd* pWndFrame,
    BOOL bIsDefaultFrame);

매개 변수

nKey
[in] 확인할 키입니다.

fVirt
[in] 바로 가기 키의 동작을 지정합니다. 가능한 값 목록은 ACCEL 구조를 참조 하세요.

pWndFrame
[in] 프레임 창입니다. 이 메서드는 바로 가기 키가 이 프레임에서 처리되는지 여부를 결정합니다.

bIsDefaultFrame
[in] pWndFrame이 기본 프레임 창인지 여부를 나타내는 부울 매개 변수입니다.

Return Value

바로 가기 키가 처리되면 TRUE입니다. 키가 처리되지 않거나 pWndFrame이 NULL인 경우 FALSE입니다.

설명

pWndFrame에서 바로 가기 키가 처리되는지 여부를 확인하려면 nKey 및 fVirt 모두에 대한 입력 매개 변수가 가속기 테이블의 항목과 일치해야 합니다.

CKeyboardManager::IsKeyPrintable

문자를 인쇄할 수 있는지 여부를 나타냅니다.

static BOOL __stdcall IsKeyPrintable(const UINT nChar);

매개 변수

nChar
[in] 이 메서드가 확인하는 문자입니다.

Return Value

문자를 인쇄할 수 있으면 0이 아닌 경우 0이 아닙니다.

설명

GetKeyboardState에 대한 호출이 실패하면 이 메서드가 실패합니다.

CKeyboardManager::IsShowAllAccelerators

메뉴 명령에 연결된 모든 바로 가기 키를 메뉴에 표시할지 아니면 기본 바로 가기 키만 표시할지 여부를 나타냅니다.

static BOOL IsShowAllAccelerators();

Return Value

애플리케이션이 메뉴 명령에 대한 모든 바로 가기 키를 나열하는 경우 0이 아닌 경우 애플리케이션에 기본 바로 가기 키만 표시되면 0입니다.

설명

애플리케이션은 메뉴 모음의 메뉴 명령에 대한 바로 가기 키를 나열합니다. CKeyboardManager::ShowAllAccelerators 함수를 사용하여 애플리케이션에 모든 바로 가기 키가 나열되는지 아니면 기본 바로 가기 키만 나열할지를 제어합니다.

CKeyboardManager::LoadState

Windows 레지스트리에서 바로 가기 키 테이블을 로드합니다.

BOOL LoadState(
    LPCTSTR lpszProfileName = NULL,
    CFrameWnd* pDefaultFrame = NULL);

매개 변수

lpszProfileName
[in] 데이터가 저장되는 CKeyboardManager 레지스트리 경로입니다.

pDefaultFrame
[in] 기본 창으로 사용할 프레임 창에 대한 포인터입니다.

Return Value

상태가 성공적으로 로드되었으면 0이 아니고, 그렇지 않으면 0입니다.

설명

lpszProfileName 매개 변수가 NULL이면 이 메서드는 데이터의 기본 레지스트리 위치를 CKeyboardManager 확인합니다. 기본 레지스트리 위치는 CWinAppEx 클래스의해 지정됩니다. 이전에 CKeyboardManager::SaveState 메서드를 사용하여 데이터를 작성해야 합니다.

기본 창을 지정하지 않으면 애플리케이션의 기본 프레임 창이 사용됩니다.

CKeyboardManager::ResetAll

애플리케이션 리소스에서 바로 가기 키 테이블을 다시 로드합니다.

void ResetAll();

설명

이 함수는 인스턴스에 저장된 바로 가기를 CKeyboardManager 지웁니다. 그런 다음, 애플리케이션 리소스에서 키보드 관리자의 상태를 다시 로드합니다.

CKeyboardManager::SaveState

바로 가기 키 테이블을 Windows 레지스트리에 저장합니다.

BOOL SaveState(
    LPCTSTR lpszProfileName = NULL,
    CFrameWnd* pDefaultFrame = NULL);

매개 변수

lpszProfileName
[in] 상태를 저장하기 위한 레지스트리 경로입니다 CKeyboardManager .

pDefaultFrame
[in] 기본 창이 되는 프레임 창에 대한 포인터입니다.

Return Value

키보드 관리자 상태가 성공적으로 저장되었으면 0이 아니고, 그렇지 않으면 0입니다.

설명

lpszProfileName 매개 변수가 NULL이면 이 메서드는 CWinAppEx 클래스에서 지정한 기본 위치에 상태를 씁니다CKeyboardManager. 위치를 지정하는 경우 나중에 CKeyboardManager::LoadState 메서드를 사용하여 데이터를 로드할 수 있습니다.

기본 창을 지정하지 않으면 기본 프레임 창이 기본 창으로 사용됩니다.

CKeyboardManager::ShowAllAccelerators

메뉴 명령과 연결된 모든 바로 가기 키를 표시합니다.

static void ShowAllAccelerators(
    BOOL bShowAll = TRUE,
    LPCTSTR lpszDelimiter = _afxDefaultAcceleratorDelimiter);

매개 변수

bShowAll
[in] TRUE이면 모든 바로 가기 키가 표시됩니다. FALSE이면 첫 번째 바로 가기 키만 표시됩니다.

lpszDelimiter
[in] 바로 가기 키 사이에 삽입할 문자열입니다. 바로 가기 키가 하나만 표시되는 경우에는 이 구분 기호가 적용되지 않습니다.

설명

기본적으로 명령에 연결된 바로 가기 키가 두 개 이상 있는 경우 첫 번째 바로 가기 키만 표시됩니다. 이 함수를 사용하면 모든 명령과 연결된 모든 바로 가기 키를 나열할 수 있습니다.

바로 가기 키는 메뉴 모음의 명령 옆에 나열됩니다. 모든 바로 가기 키가 표시되면 lpszDelimiter에서 제공하는 문자열은 개별 바로 가기 키를 구분합니다.

CKeyboardManager::TranslateCharToUpper

문자를 상한 레지스터로 변환합니다.

static UINT TranslateCharToUpper(const UINT nChar);

매개 변수

nChar
[in] 변환할 문자입니다.

Return Value

입력 매개 변수의 상위 레지스터인 문자입니다.

CKeyboardManager::UpdateAccelTable

새 바로 가기 키 테이블로 바로 가기 키 테이블을 업데이트합니다.

BOOL UpdateAccelTable(
    CMultiDocTemplate* pTemplate,
    LPACCEL lpAccel,
    int nSize,
    CFrameWnd* pDefaultFrame = NULL);

BOOL UpdateAccelTable(
    CMultiDocTemplate* pTemplate,
    HACCEL hAccelNew,
    CFrameWnd* pDefaultFrame = NULL);

매개 변수

pTemplate
[in] 문서 서식 파일에 대한 포인터입니다.

lpAccel
[in] 새 바로 가기 키에 대한 포인터입니다.

nSize
[in] 새 바로 가기 테이블의 크기입니다.

pDefaultFrame
[in] 기본 프레임 창에 대한 포인터입니다.

hAccelNew
[in] 새 바로 가기 테이블에 대한 핸들입니다.

Return Value

메서드가 성공하면 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 함수를 사용하여 기존 바로 가기 테이블을 여러 프레임 창 개체에 대한 새 바로 가기 키로 바꿉 있습니다. 함수는 지정된 문서 서식 파일에 연결된 모든 프레임 창 개체에 대한 액세스 권한을 얻기 위해 문서 서식 파일을 매개 변수로 받습니다.

참고 항목

계층 구조 차트
클래스
CWinAppEx 클래스
CWinAppEx::InitKeyboardManager
키보드 및 마우스 사용자 지정