das fenster wird nicht geschlossen.



  • Also entweder hast Du irgendwo einen Thread implementiert, von dem Du uns nix erzählt hast, oder Du solltest mal folgende Messageloop versuchen:

    while( (status=GetMessage( &msg, NULL, 0, 0)) != 0)
    {
       if( status == -1)
          return -1;
       if( !TranslateAccelerator( msg.hwnd, hAccelTable, &msg))
       {
          TranslateMessage( &msg);
          DispatchMessage( &msg);
       }
    }
    


  • was bedeutet das ausrufe zeichen vor der funtion???



  • Original erstellt von <neuer>:
    was bedeutet das ausrufe zeichen vor der funtion???

    Negation. Das weiß ja sogar ich als eingefleischter Delphi-Programmierer. :o



  • wenn jemandem von euch durch zufall einfallen sollte was des windows-ce für ne nachricht sendet wenn man auf den schließenschalter drückt oder wenn einer von euch wissen sollte wie man nen vollbildmodus bei win-ce erzeugt sagt er mir bitte bescheid.

    p.s. ich dachte immer TranslateMessage (&msg) ;
    DispatchMessage (&msg) ;
    würden auch so funtzen?

    (hat es bei mir bis jetzt eigentlich



  • Vielleicht hilft dir die MSG abzufangen, wenn du auf X drückst und dann durch MessageBox oder so auszugeben!? Kriegst zwar ne Zahl aber in irgendeiner Datei steht zu welchem WM_xxx die Zahl gehört!



  • p.s. ich dachte immer TranslateMessage (&msg) ;
    DispatchMessage (&msg) ;

    Aber nicht, wenn man Accelerator-Tasten verwendet, kam wohl bei Dir noch net vor!



  • die idee mit der messagebox ist mir auch schon gekommen.
    naja vieleicht interessiert es euch nicht aber ich schreib die problemlösung mal der vollständigkeit halber hier hin.

    LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
    {
    switch(iMsg)
    {
    case WM_KILLFOCUS:
    DestroyWindow(hwnd);
    break;

    case WM_DESTROY:
    PostQuitMessage(0);
    break;

    default:
    return DefWindowProc(hwnd,iMsg,wParam,lParam);
    }
    return 0;
    }

    man beachte das killfocus.

    noch ne frage: um was genau handelt es sich bei einem accelerator?



  • Hmm, heisst das dann, das bei Windows CE nur der focus abgegeben wird, wenn man auf das X drückt?
    Nur ne kleine bemerkung, zu dem "return 0" kommt der Programmcode nie .. kannst du rausnehmen ;)!



  • ja der focus wird nur abgegeben wenn des "x" gedrückt wird.
    das hat eigentlich den vorteil, dass wenn z.b. ein anruf kommt und man deshalb ein prog schließen muß, man nicht speichern muß.
    das prog ist dann so etwas wie eingefroren bis es wieder aufgerufen wird.
    eigentlich ganz praktisch wenn man weiß warum und wieso des so ist.
    🙂

    na und? las mich doch meine return 's machen ich steh halt auf so etwas 😉



  • Wenn er mit break den/die/das switch verlässt, wird doch return 0 aufgerufen! Wieso sollte man es rausnehmen 😕


Anmelden zum Antworten