accelerator oder mnemonic ohne Menüeintrag

nammder

Mitglied
Moin! zusammen,

mein Problem ist, dass ich für eine Funktion durch eine Tastenkombination ausführen lassen will, die neue Funktion ruft ein Modales Auswahlfenster auf, in die Richtung funktioniert aber alles.
Alles was ich bisher gefunden habe beschreibt immer nur das Erstellen einer Tastenkombi zusammenhängend mit einem Menüeintrag. Für meinen Fall soll es aber kein Menü geben, lediglich die Möglichkeit das Fenster durch einen Shortcut aufzufrufen.

Wie kriege ich das also hin? Kann mir da jemand helfen.
Danke und Gruß nammder
 
Du könntest im Hauptfenster (das die Funktion aufruft) die Methode PreTranslateMessage() überladen und dort die entsprechende Tastenkombination abfangen.
 
Mmmh,
da ich noch teilweise noch recht in den Kinderschuhen meiner Visual c++ -Kariere stehe, :(
müsste ich dich bitten da noch ein wenig ausführlicher zur Hand zugehen :-(

Gruß
 
PreTranslateMessage() kannst du mit dem Klassenassistenten einfügen. Ich hoffe, mit Hilfe der Kommentare im Beispielcode bekommst du deine eigene Implementierung hin. Die Tastencodes = Virtual-Key Codes findest du unter eben der Bezeichnung in der MSDN.
Code:
BOOL CMeinDialog::PreTranslateMessage(MSG* pMsg) 
{
    if( pMsg->message == WM_KEYDOWN ) // Taste gedrückt
    {
        if( pMsg->wParam == VK_ ... ) // Prüfen, ob gewünschte Taste gedrückt wurde
                                      // Tastencodes aus den "Virtual-Key Codes" (MSDN)
        {
            if( GetKeyState(VK_SHIFT) < 0 ) //Prüfen ob Steuertaste gedrückt wurde
                                            // VK_SHIFT = Shift, VK_CONTROL = Ctrl, VK_MENU = Alt
            {
                // ... Funktion aufrufen
                
                return TRUE;
            }
        }                    
    }
    
    return CDialog::PreTranslateMessage(pMsg);
}
 
Zurück