biSystemMenu (schliessen)



  • Hallo,

    ich habe bzur Zeit das Problem, dass ich nicht weiß, wie ich das Border Icon "X" mit eienr anderen Funktion hinterlegen kann. Es wurde schon ein ähnlicher artikel erstellt, aber es entspricht nicht dem, was ich möchte.

    Ich würde gerne das Kreuz mit einer Funktion hinterlegen.

    Wenn ich auf die Methode Close(); (die das Kreuz bekanntlich ausführt) reagiere und somit die auswirkung des "X" abfange, funktioniert die Programmschliessung nicht mehr.

    Das Programm soll nicht durch das "X" geschlossen werden, sondern nur minimiert.

    Wie mache ich sowas???

    ciao zani



  • OnClose() { Minimize(); } ......



  • hallo zani,

    das kannst du mit einer windows-botschaft erledigen. es wundert mich das du dazu nix gefunden hast, das ich das nicht zum ersten mal geschrieben habe, naja seis drum, die botschaft heisst WM_SYSCOMMAND und folgendermaßen umgesetzt:

    Header:

    void __fastcall OnSysComm(TWMSysCommand & SysComm);
    protected:
        BEGIN_MESSAGE_MAP
            VCL_MESSAGE_HANDLER(WM_SYSCOMMAND, TWMSysCommand, OnSysComm)
        END_MESSAGE_MAP(TForm)
    

    CPP:

    void __fastcall TForm1::OnSysComm(TWMSysCommand & SysComm)
    {
        switch (SysComm.CmdType)
       {
        case SC_CLOSE: this->WindowState = wsMinimized; break;
          default: TForm::Dispatch(&SysComm); //für Standardbehandlung.
       }
    }
    

    mfg
    murph


Anmelden zum Antworten