Zum Verwenden von Zugriffstasten innerhalb eines modalen Dialogfelds in Visual C++

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 222829
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Hinweis: Microsoft Visual C++ .NET (2002) unterstützt sowohl das verwaltete Codemodell aus dem Microsoft .NET Framework als auch das nicht verwaltete Codemodell, das in Microsoft Windows integriert ist. Die Informationen in diesem Artikel beziehen sich nur auf nicht verwalteten Visual C++-Code.
Zusammenfassung
Zugriffstasten sind eine gemeinsame Benutzeroberfläche-Funktion von Windows-Anwendungen; aus diesem Grund warum begrenzen Sie nur die Anwendung? Dieser Artikel veranschaulicht, wie wichtige Funktionen von Accelerator alle modalen Dialogfeld hinzufügen.
Weitere Informationen
Zugriffstasten werden durch Aufrufen der TranslateAccelerator()-Funktion in der Anwendung Hauptmeldungsschleife verarbeitet. Allerdings wird für ein modales Dialogfeld die Meldungsschleife Dialogfeld Feld Manager (in Windows integriert) verwendet, zum Übersetzen und Senden von Nachrichten. Natürlich, da diese Meldungsschleife nicht zum Verarbeiten von Zugriffstasten ausgelegt ist, wird es nicht die Funktion TranslateAccelerator() aufgerufen.

Zugriffstasten in einem modalen Dialogfeld verarbeiten möchten, müssen Sie das Dialogfeld PreTranslateMessage() überschreiben funktionieren und versuchen Sie die Nachricht als Zugriffstaste durch den Aufruf verarbeiten:: TranslateAccelerator(). Wenn diese Methode fehlschlägt, setzt die Verarbeitung anschließend durch Aufrufen der Basisklasse PreTranslateMessage() fort.

Für die Zwecke dieses Artikels werden wichtige Funktionen von Accelerator zu der AboutBox-Dialogfeld einer MFC-MDI-Anwendung hinzufügen:
  1. Erstellen Sie eine neue MFC-MDI-Anwendung mit dem Namen Test.
  2. Hinzufügen einer Schaltfläche mit Ressource ID "IDC_BUTTON1" die AboutBox-Dialogfeldressource.
  3. Doppelklicken Sie auf die Schaltfläche hinzufügen einen Handler für diese Schaltfläche, und fügen Sie folgenden Code als Indikator, der die Zugriffstaste arbeitet:
    AfxMessageBox("Hello");
  4. Legen Sie eine neue Zugriffstastentabelle auf die Ressource.
  5. Durch Zuordnen der F5 einen Accelerator-Schlüssel zur Tabelle hinzufügen auf die Ressource-ID "IDC_BUTTON1" Schlüssel.
  6. Fügen Sie die Member Variable M_hAccelTable zur Klasse CAboutBox:
    HACCEL  m_hAccelTable;
  7. Initialisieren von M_hAccelTable in CAboutBox::CAboutBox:
    m_hAccelTable = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ACCELERATOR1));
  8. Verwenden Sie den Code-Assistenten (der Klassen-Assistent in Visual C++ 6.0 und früher), eine Überschreibung der PreTranslateMessage für die CAboutDlg hinzufügen.
  9. Fügen Sie in der CAboutBox::PreTranslateMessage()-Methode, die folgenden Codezeilen hinzu:
    BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg) {   if (m_hAccelTable) {      if (::TranslateAccelerator(m_hWnd, m_hAccelTable, pMsg)) {         return(TRUE);      }   }   return CDialog::PreTranslateMessage(pMsg);}
  10. Kompilieren Sie und führen Sie CTestApp.

Ergebnisse Zugriffstaste F5 löst jetzt den Ereignishandler von button1, wenn das CAboutBox aktiv ist.
Informationsquellen
Weitere Informationen zu Zugriffstaste Verarbeitung innerhalb von modalen Dialogfeldern finden Sie in der folgenden Artikel der Microsoft Knowledge Base:
100770 Information: Verwenden von Zugriffstasten mit Modal Dialog Box-Hauptfenster
Zugriffstasten modales Dialogfeld

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 222829 – Letzte Überarbeitung: 12/05/2015 13:27:22 – Revision: 4.1

Microsoft Foundation Class Library 4.2

  • kbnosurvey kbarchive kbmt kbacceleratorkey kbhowto kbkeyaccel kbuidesign KB222829 KbMtde
Feedback