Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Restart Dialog mit Counter

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
16.06.2005, 16:27 Uhr
GuenniAtWork




Zitat von Tommix:

als Parameter einen Zeiger auf die aktuelle Instanz geben.



ich glaube das ist mein eigentliches Problem.
Ich bekomme einfach keinen Zeiger auf das Fenster um den Text zu ändern.
Denn bei OnInitIalog ist das eigentliche Dialogfenster noch nicht da. Oder?

Ich versuchs mal mit dem Timer.
--
Gruß GuenniAtWork
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
16.06.2005, 16:30 Uhr
Tommix




C++:
BOOL CRestartDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // TODO:  hier zusätzliche Initialisierung hinzufügen.
    m_countdown = 10;
    SetTimer(IDC_TIMER, 1000, NULL);

    return TRUE;  // return TRUE unless you set the focus to a control
    // AUSNAHME: OCX-Eigenschaftenseite muss FALSE zurückgeben.
}

void CRestartDlg::OnTimer(UINT nIDEvent)
{
    if (nIDEvent == IDC_TIMER)
    {
        m_countdown--;
        CString txt;
        txt("Noch %d Sekunden", m_countdown);
        SetWindowText(txt);

        if (m_countdown < 1)
        {
             OnCancel(); // oder was auch immer
         }
    }
        
    CDialog::OnTimer(nIDEvent);
}



- Tommix

Dieser Post wurde am 16.06.2005 um 16:33 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
16.06.2005, 16:32 Uhr
Tommix




Zitat von GuenniAtWork:

Denn bei OnInitIalog ist das eigentliche Dialogfenster noch nicht da. Oder?

Doch: this
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
16.06.2005, 16:43 Uhr
GuenniAtWork




Mit Timer Gehts

@Tommix
Hätt Ich mal gleich gehört.

So hab ichs jetzt.

C++:
BOOL CRestartDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    this->SetTimer(ID_RESTARTTIMER,1000,NULL);
    CString sRSMessage = "Das System wird in ##s neu gestartet!";
    CString sTime;
    sTime.Format("%i",--m_iRestartTime);
    sRSMessage.Replace("##",sTime);
    this->SetDlgItemText(IDC_ST_RESTART,sRSMessage);
    return TRUE;  // return TRUE unless you set the focus to a control
    // AUSNAHME: OCX-Eigenschaftenseite muss FALSE zurückgeben.
}

void CRestartDlg::OnTimer(UINT nIDEvent)
{
    if(!m_bCancel)
        Restart();
    else
        KillTimer(ID_RESTARTTIMER);
    CDialog::OnTimer(nIDEvent);
}

void CRestartDlg::Restart(void)
{
    CString sRSMessage = "Das System wird in ##s neu gestartet!";
    CString sTime;
    sTime.Format("%i",--m_iRestartTime);
    sRSMessage.Replace("##",sTime);
    this->SetDlgItemText(IDC_ST_RESTART,sRSMessage);

    if (!m_bCancel && m_iRestartTime <= 0)
    {
        KillTimer(ID_RESTARTTIMER);
        DestroyWindow();
        AfxMessageBox("Neustart");
    }
      //ExitWindowsEx(EWX_REBOOT | EWX_FORCEIFHUNG,NULL);
}



@All
--
Gruß GuenniAtWork
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
17.06.2005, 11:22 Uhr
mmc20
puss in boots


hi, du solltest in OnTimer() noch nIDEvent testen ob es sich um deinen timer handelt, ausserdem finde ich die doppelte abfrage von m_bCancel (in ontimer und restart) etwas überflüssig.
warum formatierst du eigentlich deinen string so umständlich mit Replace ? nimm doch gleich Format

C++:
    CString sRSMessage;
    sRSMessage.Format( "Das System wird in %ss neu gestartet!", --m_iRestartTime );
    SetDlgItemText(IDC_ST_RESTART,sRSMessage);


ich hab sowas mal als fertiges projekt hochgeladen --> hier
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
20.06.2005, 10:05 Uhr
GuenniAtWork



Danke für das Prog!!!
Hat sehr geholfen!!!
--
Gruß GuenniAtWork
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: