Jak použít klávesové zkratky v rámci modální dialogové v jazyce C++

Překlady článku Překlady článku
ID článku: 222829 - Produkty, které se vztahují k tomuto článku.
Poznámka: Microsoft Visual C++ .NET (2002) podporuje model spravovaný kód, který je součástí Microsoft .NET Framework a Nespravovaná nativní kód modelu Microsoft Windows. Informace v tomto článku platí pouze pro nespravované kód jazyka C++.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Klávesové zkratky jsou běžné funkce uživatelského rozhraní aplikací Windows; proto jim Proč omezit pouze na aplikaci? Tento článek ukazuje, jak přidat funkce klíče akcelerátory modální dialogové.

Další informace

Klávesové zkratky jsou zpracovány voláním funkce TranslateAccelerator() v smyčka zpráv hlavní aplikace. Však modální dialogové smyčka dialogové okno pole Správce zpráv (integrovaných do systému Windows) je použita k přeložit a odeslat zprávy. Samozřejmě protože tento smyčka zpráv není určen ke zpracování akcelerátory, jej nevyvolá funkci TranslateAccelerator().

Klávesové zkratky modální dialogové okno zpracování, musí přepsat PreTranslateMessage() dialogové okno funkce a zkuste zpracovat zprávu jako akcelerátory voláním:: TranslateAccelerator(). Pokud tento způsob nezdaří, potom zpracování pokračuje voláním základní třídy PreTranslateMessage().

Pro účely tohoto článku doporučujeme přidat funkce klíče akcelerátory dialogovém okně AboutBox MFC MDI aplikace:
  1. Vytvoření nové aplikace MFC MDI nazvané Test.
  2. Tlačítko s ID zdroje "IDC_BUTTON1" k prostředku pole AboutBox dialogové okno Přidat.
  3. Poklepejte na tlačítko Přidat popisovač toto tlačítko a vložte následující kód jako indikátor, který pracuje přístupová klávesa:
    AfxMessageBox("Hello");
  4. Vložení nové tabulky Accelerator do prostředků.
  5. Do tabulky přidat klíč Accelerator přidružením F5 klíče ID zdroje "IDC_BUTTON1".
  6. Proměnná, m_hAccelTable člen přidat do třídy CAboutBox:
    HACCEL  m_hAccelTable;
  7. Inicializovat m_hAccelTable v CAboutBox::CAboutBox:
    m_hAccelTable = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ACCELERATOR1));
  8. Pomocí Průvodce kód (třída průvodce Visual C++ 6.0 a starší) přidat přepsání PreTranslateMessage CAboutDlg.
  9. V metodě CAboutBox::PreTranslateMessage() přidejte následující řádky kódu:
    BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg) {
       if (m_hAccelTable) {
          if (::TranslateAccelerator(m_hWnd, m_hAccelTable, pMsg)) {
             return(TRUE);
          }
       }
       return CDialog::PreTranslateMessage(pMsg);
    
    }
  10. Kompilace a spuštění CTestApp.

Výsledky Přístupová klávesa F5 spustí obslužnou rutinu button1 nyní, když je aktivní CAboutBox.

Odkazy

Další informace o přístupová klávesa zpracování v rámci modálních dialogových oken naleznete v následujícím článku databáze Microsoft Knowledge Base:
100770 INFO: použití klíčů Accelerator s modální okno dialog box hlavní okno

Vlastnosti

ID článku: 222829 - Poslední aktualizace: 21. listopadu 2006 - Revize: 4.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Foundation Class Library 4.2 na těchto platformách
    • 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
Klíčová slova: 
kbmt kbacceleratorkey kbhowto kbkeyaccel kbuidesign KB222829 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:222829

Dejte nám zpětnou vazbu

 

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