Accelerator funktionieren nicht...



  • Hoi was ist an diesem Code falsch, ich kann den Fehler einfach nicht finden...

    // => Load the Accelerator Table
        HACCEL haAccel;
        haAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(ACC_MAIN));
        (haAccel == NULL ? fAccelSuccess = false : fAccelSuccess = true);
    
        // => Main Message Loop
        while(GetMessage(&msgApp, (HWND)NULL, 0, 0) &&
              fAccelSuccess ? (!TranslateAccelerator((HWND)NULL, haAccel, &msgApp)) : true))
        {
            DispatchMessage(&msgApp);
            TranslateMessage(&msgApp);
        }
    

    merci schonmal!


  • Mod

    Du musst schon ein Fenster angeben, an das die entsprechenden WM_COMMAND Nachrichten gesendet werden sollen! NULL geht nicht



  • du solltest außerdem zusätzlich zum Tipp von Martin Richter noch deine Message Loop so umbauen:

    // => Load the Accelerator Table
        HACCEL haAccel;
        haAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(ACC_MAIN));
        (haAccel == NULL ? fAccelSuccess = false : fAccelSuccess = true);
    
        // => Main Message Loop
        while(GetMessage(&msgApp, (HWND)NULL, 0, 0))
        {
            if((fAccelSuccess ? (!TranslateAccelerator((HWND)NULL, haAccel, &msgApp)) : true))
            {
                DispatchMessage(&msgApp);
                TranslateMessage(&msgApp);
            }
        }
        // !!!!
        // HIER!
        // !!!!
        // normalerweise: return (msgApp.wParam);
    

    da dein Programm sonst sofort nach dem Erhalten eines Accelerator-Befehls an meinem Kommentar (HIER!) ankommt, d.h. i.d.R. beendet wird...



  • @Martin Richter: das wars, danke!
    @CodeFinder: jop habs gemerkt 😃 !

    ok, Probl. gelößt, danke euch beiden! 🙂


Anmelden zum Antworten