unsichtbarerdialog



  • hallo wie in der FAQ
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39094.html

    habe ich einen dialog umgeändert. aber der stürzt immer ab. ich werde wenn ich debugge nach CRTEXE.C gefragt, es öffnet sich ein fenster QUELLCODE SUCHEN wo ich den pfad von dieser datei angeben soll.

    was habe ich falsch gemacht?

    hier der code:

    CDunsichtbarDlg* dlg=new CDunsichtbarDlg;
        dlg->Create(IDD_DUNSICHTBAR_DIALOG); 
        dlg->ShowWindow(SW_SHOW); // Wenn das Fenster NICHT angezeigt werden soll diese Zeile weglassen 
        return TRUE; // Wichtig da sonst das Nachrichtensystem nicht gestartet wird und die Anwendung sich sofort beendet
    

    und dann noch das mit oncancel und so wobei ich bei OnOk nicht wusste was ich schreiben sollte

    void CDunsichtbarDlg::OnCancel() 
    {
    	// TODO: Zusätzlichen Bereinigungscode hier einfügen
    
    	DestroyWindow(); 
    }
    
    void CDunsichtbarDlg::PostNcDestroy() 
    {
    	// TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
    
    	 PostQuitMessage(0); 
        delete this; 
    
    }
    
    void CDunsichtbarDlg::OnOK() 
    {
    	// TODO: Zusätzliche Prüfung hier einfügen
    
    	//CDialog::OnOK();
    }
    

    das häckchen sichtbar bei dialogeigenschaften hab ich auch weggemacht.

    ich habe den dialog erstellt und nur diese sachen geändert, keine weiteren funktionen oder so gemacht, den dialog so gelassen wie er von visual c++ erstellt wird(natürlich diese änderungen vorgenommen).

    mfg und vielen dank für ratschläge



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • hab das mal schnell nachvollzogen.
    bei mir ist der dialog abgeschmiert weil etwas in der OnInitDialog() funktion gestanden hat. bei dir wäre das CDunsichtbarDlg::OnInitDialog alles auskommentieren bis auf CDialog::OnInitDialog(); und return TRUE;

    aber ich muss dich gleich entäuschen der dialog bricht gleich wieder zusammen bzw. hält sich nicht am laufen.

    es wäre besser du würdest das mit einer win32 anwendung realisieren.



  • danke für die antwort, aber ich will das mit dem dialog machen, in der faq solls ja angeblich so gehen. aber bei dir schmierts ja auch ab.
    noch jemand ideen?



  • also nochmal alles aus der CDunsichtbarDlg::OnInitDialog auskommentieren /.../ bis auf CDialog::OnInitDialog(); und return TRUE; dann gibts schonmal keine debuge fehlermeldung.

    desweitern halt ich das tut aus der faq für fehlerhaft, es fehlt bestimmt ein teil.(aber hier hab ich nur laut gedacht.) da bei mir der dialog sich nicht am laufen hält. er beendet sich und ist nicht im taskmanager sichtbar.

    bzw. nur sichtbar wenn ich ihn in eine win32 schleife binde

    while( GetMessage(&msg, NULL, 0, 0) ) { 
        if( !TranslateAccelerator (msg.hwnd, NULL, &msg) ) 
        { 
            TranslateMessage( &msg ); DispatchMessage( &msg ); 
        } 
    }
    

    da dies aber nicht in einen CDialog::OnInitDialog gehört wie gesagt dachte ich laut
    :xmas1: :xmas2:

    New Edit;
    Win32 gibt dir auch die möglickeit dialoge zu benutzen allerdings classen unabhängig

    and



  • Die FAQ enthält auch einen kleinen Fehler. Es wurde vergessen in der InitInstance der Variable m_pMainWnd ein gültiges Fenster zu geben.
    Im Output-Fenster bekommt man auch diese Meldung: Warning: m_pMainWnd is NULL in CWinApp::Run - quitting application.

    In diesem Fall noch

    m_pMainWnd = dlg;
    

    hinzufügen.

    Vielleicht kann jemand den FAQ-Betrag editieren.



  • Okay.



  • Danke 🙂


Log in to reply