Programm beenden!? So schwer kann das doch nicht sein.



  • Mailmaster schrieb:

    warum kann man eigentlich nicht über -> oder . auf die variablen und funktionen der einzelnen klassen zugreifen? bei borland ging das so wunderbar. warum muss ich da jetzt immer :: machen??

    Höh? Klar geht das. Das ist C++ spezifisch und hat nichts mit Borland oder Microsoft zu tun.



  • und warum zeigt mir intelli sense dann keine möglichkeiten an? normalerweise müssten da ja dann zig einträge kommen.

    es geht weder bei theApp, noch bei den einzelnen dialogen. also irgendwie verhaspelt es mich da grad ganz schön 🙂

    MfG Mailmaster



  • ok das mit dem intellisense hab ich jetzt binbekommen 😃

    man sollte erstmal ne membervariable auf die klasse machen, dann gehts *gg*

    aber andere frage: warum wird immer das event von dem Abbrechen button ausgeführt, wenn man das programm schliesen will (mit dem x)

    lässt sich stattdessen auch ein anderes ereignis auswählen?

    MfG Mailmaster



  • Mailmaster schrieb:

    aber andere frage: warum wird immer das event von dem Abbrechen button ausgeführt, wenn man das programm schliesen will (mit dem x)

    lässt sich stattdessen auch ein anderes ereignis auswählen?

    MfG Mailmaster

    Nein, soweit ich weiß nicht.



  • sprich wenn ich das ändern will muss ich den cancel button löschen, ereignis stehen lassen und einen neuen erzeugen auf dem cancel steht?
    so hab ich schliessen vom programm und drücken des cancel button getrennt. funktioniert das so?

    sry für die blöden fragen, aber mein buch ist noch nicht da 😃

    MfG Mailmaster 🙂



  • mach einfach nen Doppelklick auf den Button, so wird eine neue Methode erstellte und schon kannst deu dem Cancel-Button dein gewünschtes Verhalten geben.



  • Mailmaster schrieb:

    sprich wenn ich das ändern will muss ich den cancel button löschen, ereignis stehen lassen und einen neuen erzeugen auf dem cancel steht?
    so hab ich schliessen vom programm und drücken des cancel button getrennt. funktioniert das so?

    sry für die blöden fragen, aber mein buch ist noch nicht da 😃

    MfG Mailmaster 🙂

    Die Idee sollte funktionieren.

    Und ob das so im Buch steht, wage ich mal zu bezweifeln. 😉



  • zur info wie ich das problem gelöst hab:
    wenn ich nur den cancel button lösche kommt nen assert failed oder so, fragt mich net was das soll?? (wenns jemand weis, dann kann er mir das gerne sagen, dann weis ich auch was ich machen muss, wenn das nochmal kommt)

    man kann das ganze aber so lösen:
    cancel button löschen und dann für den dialog bei OnClose() nen neues ereignis dazumachen. fertig 😃
    dazu sollte man aber ein komplet neues projekt machen, da sonst wieder dieses assert ding kommt 😞

    btw: die von mir gedachte methode geht nicht und die von euch anderen beiden auch nicht 🙂

    THX 4 Help

    MfG Mailmaster :p



  • Was für ein Assert war es denn? Hast du mal geschaut?



  • ---------------------------
    Microsoft Visual C++ Debug Library
    ---------------------------
    Debug Assertion Failed!

    Program: c:\Vsp\DialogProjekt\Debug\DialogProjekt.exe
    File: dlgdata.cpp
    Line: 44

    For information on how your program can cause an assertion
    failure, see the Visual C++ documentation on asserts.

    (Press Retry to debug the application)
    ---------------------------
    Abort Retry Ignore
    ---------------------------

    So lautet die Nachricht 🙂

    MfG Mailmaster



  • sry für doppelpost, aber hab das hier vergessen:

    HWND CDataExchange::PrepareCtrl(int nIDC)
    {
    	ASSERT(nIDC != 0);
    	ASSERT(nIDC != -1); // not allowed
    	HWND hWndCtrl;
       COleControlSite* pSite = NULL;
    	m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
    	if (hWndCtrl == NULL)
    	{
    	  // Could be a windowless OCX
    	  pSite = m_pDlgWnd->GetOleControlSite(nIDC);
    	  if (pSite == NULL)
    	  {
    		   TRACE(traceAppMsg, 0, "Error: no data exchange control with ID 0x%04X.\n", nIDC);
    		   ASSERT(FALSE); // DAS IST ZEILE 44
    		   AfxThrowNotSupportedException();
    	  }
    	}
    	m_idLastControl = nIDC;
    	m_bEditLastControl = FALSE; // not an edit item by default
    
       return hWndCtrl;
    }
    

    MfG Mailmaster



  • Du hattest ein Control gelöscht, für das du eine Membervariable angelegt hattest.
    Die musst du natürlich auch entfernen. 😉



  • lösch ich die auch in dem klassen manager? oder muss ich das manuell im code machen
    immerhin taucht die membervariable ziemlich oft auf.

    (wäre dann auch erst mal die letzte frage)

    MfG Mailmaster



  • Direkt im Code.

    Aber, kleiner Trick:
    Cursor in den Variablennamen setzen und dann Strg+F3 drücken. Für jedes weitere Vorkommen nur noch F3. Damit findest du alle Stellen.

    Oder gleich in der .h Datei löschen und der Compiler hilft. 😉


Anmelden zum Antworten