Visual C++에서 모달 대화 상자 내의 액셀러레이터 키를 사용하는 방법을

기술 자료 번역 기술 자료 번역
기술 자료: 222829 - 이 문서가 적용되는 제품 보기.
참고 Microsoft Visual C++ .NET (2002) Microsoft .NET Framework에서 제공하는 관리되는 코드 모델과 관리되지 않는 네이티브 Microsoft Windows 코드 모델을 모두 지원합니다. 이 문서에 나와 있는 정보는 관리되지 않는 Visual C++ 코드에만 적용됩니다.
모두 확대 | 모두 축소

요약

액셀러레이터 키가 Windows 응용 프로그램의 일반적인 사용자 인터페이스 기능이 있으며, 따라서 단지 응용 프로그램 이유는 제한할? 이 문서에서는 모든 모달 대화 상자로 액셀러레이터 키 기능을 추가하는 방법을 보여 줍니다.

추가 정보

액셀러레이터 키 응용 프로그램의 주 메시지 루프가 TranslateAccelerator() 함수를 호출하여 처리됩니다. 그러나 모달 대화 상자는 (Windows에 기본 제공된) 대화 상자에서 관리자 메시지 루프는 번역하고 메시지를 발송하는 데 사용됩니다. 물론 이 메시지 루프를 액셀러레이터 키를 처리하도록 디자인되었기 때문에 TranslateAccelerator() 함수를 호출하지 않습니다.

모달 대화 상자의 액셀러레이터 키를 처리할 수 있는 대화 상자를 PreTranslateMessage() 재정의할 함수 및 메시지를 액셀러레이터 키로 호출하여 처리하려고:: TranslateAccelerator(). 이 메서드가 실패하면 다음 처리 기본 클래스 PreTranslateMessage() 호출하여 계속됩니다.

이 문서의 목적을 위해 AboutBox 대화 상자를 MFC MDI 응용 프로그램의 액셀러레이터 키 기능을 추가합니다.
  1. Test 라는 새 MFC MDI 응용 프로그램을 만듭니다.
  2. 리소스 ID "IDC_BUTTON1" AboutBox 대화 상자 리소스에 단추를 추가하십시오.
  3. 이 단추의 처리기를 추가하고 액셀러레이터 키가 작동합니다 표시기로 다음 코드를 삽입할 단추를 두 번 클릭하여:
    AfxMessageBox("Hello");
  4. 리소스 새 액셀러레이터 키 테이블에 삽입하십시오.
  5. F5 연결하여 액셀러레이터 키 테이블에 추가한 리소스 ID "IDC_BUTTON1" 키.
  6. 클래스에 추가 멤버 변수, m_hAccelTable CAboutBox:
    HACCEL  m_hAccelTable;
  7. CAboutBox::CAboutBox m_hAccelTable 초기화할:
    m_hAccelTable = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ACCELERATOR1));
  8. 코드 마법사 (클래스 마법사 Visual C++ 6.0 및 이전)에 대한 CAboutDlg, PreTranslateMessage의 재정의를 추가할 수 있습니다.
  9. 다음 코드 줄을 CAboutBox::PreTranslateMessage() 메서드 추가:
    BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg) {
       if (m_hAccelTable) {
          if (::TranslateAccelerator(m_hWnd, m_hAccelTable, pMsg)) {
             return(TRUE);
          }
       }
       return CDialog::PreTranslateMessage(pMsg);
    
    }
  10. 컴파일 및 실행하려면 CTestApp.

결과 해당 CAboutBox 활성화되어 있을 때 F5 바로 가기 키를 이제 button1 처리기를 트리거합니다.

참조

모달 대화 상자 안의 처리 액셀러레이터 키에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
100770 INFO: 액셀러레이터 키 함께 모달 대화 상자 주 창 사용

속성

기술 자료: 222829 - 마지막 검토: 2006년 11월 21일 화요일 - 수정: 4.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Foundation Class Library 4.2?을(를) 다음과 함께 사용했을 때
    • Microsoft Visual C++ 4.1 Subscription
    • Microsoft Visual C++ 4.2 Enterprise Edition
    • Microsoft Visual C++ 5.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Enterprise Edition
    • Microsoft Visual C++ 4.2 Professional Edition
    • Microsoft Visual C++ 5.0 Professional Edition
    • Microsoft Visual C++ 6.0 Professional Edition
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
    • Microsoft Visual C++ .NET 2002 Standard Edition
    • Microsoft Visual C++ .NET 2003 Standard Edition
키워드:?
kbmt kbacceleratorkey kbhowto kbkeyaccel kbuidesign KB222829 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com