SDI anwendung schliessen und list ctrl löschen



  • Hi,
    möchte gerne eine Hauptanwendung schliessen, wenn ich auf einen Buttom im anderen Dialog klicke, habe bisher nichts passendes gefunden...

    ausserdem möchte ich ein list control von einem anderen Dialog leeren, da bekomme ich aber den Fehler unbehandelte Ausnahme,wenn ich

    MeinDialog.meineCtrlVariable.deleteallitems()
    aufrufe.
    auf Methoden von MeinDialog kann ich zugreifen, bloss sobald ich aufs list control zugreifen möchte, gibt er mir Fehler aus...

    Danke für eure Hilfe



  • luetter schrieb:

    Hi,
    möchte gerne eine Hauptanwendung schliessen, wenn ich auf einen Buttom im anderen Dialog klicke, habe bisher nichts passendes gefunden...

    du moechtest in einer SDI-anwendung auf einen andern dialog klicken?!?!
    versteh ich nicht.

    luetter schrieb:

    ausserdem möchte ich ein list control von einem anderen Dialog leeren, da bekomme ich aber den Fehler unbehandelte Ausnahme,wenn ich

    MeinDialog.meineCtrlVariable.deleteallitems()
    aufrufe.

    von wo rufst du diese funktion denn auf? vom childfenster greifst du aufs parentfenster zu, ueber theApp, oder wie machste des?

    Esco



  • ich rufe von dem Hauptdialog einen anderen Dialog (D2) auf,nun möchte ich, wenn ich im Dialog D2 auf einen Button klicke, dass sich das gesamte Programm
    schliesst, und nicht nur der Dialog D2. habe manches dazu gefunden, aber irgendwie scheint es nicht bei einer SDI anwendung zufunktionieren
    (zumindest hat es nicht bei mir funktioniert 🙂 )

    so, beim list control ist es ein ähnliches Problem.
    rufe vom Dialog d1 (wo sich das list control befindet) einen anderen Dialog D2.
    nun möchte ich,wenn ich im Dialog D2 auf OK klicke, das sich das list control
    leert, damit ich dann neue einträge eintragen kann.
    aber dann tritt das oben erwähnte Problem auf.

    danke für deine Hilfe



  • in CMainFrm gibt es eine private-funktion OnClose();
    jetzt musst du eine public schreiben, die diese private aufruft.

    void CMainFrame::Close(void) 
    {	
    	CFrameWnd::OnClose();
    }
    

    jetzt kannst du, nachdem du einen theApp-pointer auf CMainFrm hast diese funktion nach externem includen von theApp von ueberall aus aufrufen.

    mit dem listcontrol das selbe: funktion zum leeren des controls schreiben. theApp pointer auf den dialog_1 und dann von dialog_2 die funktion aufrufen.
    dies mag hier nach meinung einiger user nicht der perfekte saubere programmierstil sein, ist aber funktionell und schnell umzusetzen. zeit fuer alternativvorschlaege war ja reichlich vorhanden.

    Esco



  • Vielen Dank!!!

    werde es demnächst mal ausprobieren,
    vielleicht schaffe ich es ja 🙂



  • kannst du mir diesen Satz vielleicht noch bisschen näher erläutern,
    z.B. mit Code, habe noch nie was mit theApp gemacht:

    jetzt kannst du, nachdem du einen theApp-pointer auf CMainFrm hast diese funktion nach externem includen von theApp von ueberall aus aufrufen.
    

    danke



  • also die Methode kann ich jetzt aufrufen, allerdings bewirkt das

    void CMainFrame::Close(void)
    {
    	MessageBox("CMainFrame::Close",NULL,NULL);
    	CFrameWnd::OnClose(); 
    
    }
    

    nichts,hängt es vielleicht mit der SDI-Anwendung zusammen?
    mir würde gesagt,dass dort schwieriger ist eine Anwendung komplett zuschliessen...


Anmelden zum Antworten