ProgressCtrl in neuem Fenster



  • Hallo Leute,

    Ich habe folgendes Problem: Ich will den Fortschritt einer Funktion auf dem Fortschrittsbalken eines neuen Dialoges anzeigen. Wenn die Funktion zuendegelaufen ist, dann schließt sich der Dialog wieder. Ich habe folgenden Code ausprobiert:

    CProgressDlg *pDlg = new CProgressDlg();
    	pDlg->DoModal();
    	CProgressCtrl *pBar = pDlg->(CProgressCtrl*)GetDlgItem(IDC_PROGRESSBAR);
    	pBar->m_cProgressBar.SetRange32(1, iCount);
    

    Dieser bricht jetzt beim kompilieren mit folgender Meldung ab:

    error C2059: Syntaxfehler: '('



  • mkcore schrieb:

    pBar->m_cProgressBar.SetRange32(1, iCount);

    Würde jetzt mal spontan vermuten das es an dieser Zeile liegt:

    Du schreibst "SetRange32", diese funktion ist mir neu 😃



  • Habs vorher mit SetRange ausprobiert. Aber hat leider auch nicht funktioniert. 😞



  • in welcher zeile zeigt er denn den fehler ??



  • ist doch ganz klar, dein cast ist falsch geklammert !



  • falsch:

    pDlg->(CProgressCtrl*)GetDlgItem(IDC_PROGRESSBAR);
    

    richtig:

    (CProgressCtrl*)pDlg->GetDlgItem(IDC_PROGRESSBAR);
    


  • Jetzt kompiliert er zwar den Code, stürzt aber ab.

    Ich versuch mal, mein Problem besser zu erklären. Ich will mit dem Zeiger auf die Steuerelemtvariable von IDC_PROGRESSBAR zugreifen, welche ich m_cProgressBar genannt habe. Dann will ich den Bereich (SetRange) usw. setzen. Mein Problem ist also in der dritten Zeile. Folgender Code ließ sich zwar kompilieren, hat aber beim Ausführen keine Wirkung gezeigt:

    pBar->m_cProgressBar.SetRange(1, iCount);
    

    Bin leider noch nicht sehr fit im Umgang mit Zeigern.



  • Ich bins nochmal.

    Habs jetzt mal so probiert:

    CProgressDlg *pDlg = new CProgressDlg();
    	pDlg->DoModal();
    	MessageBox("drin");
    	CProgressCtrl *pBar = (CProgressCtrl*)pDlg->GetDlgItem(IDC_PROGRESSBAR);
    	pBar->SetRange(1, iCount);
    	pBar->SetStep(1);
    	pBar->SetStep(2);
    

    Komischerweise erscheint die MessageBox erst, nachdem man den neu erstellten Dialog geschlossen hat 😕 Hat jemand von euch ein Erklärung dafür? Ich versteh das nämlich absolut nicht...



  • logisch, du rufst ja do modal VOR MessageBox auf.....



  • Naja, aber nach dem Erstellen müsste doch die MessageBox erscheinen, und nicht erst, wenn der Dialog wieder geschlossen ist. Oder ist da jetzt ein Denkfehler drin 😕


Anmelden zum Antworten