Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » 100 % Leiste

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 <
000
04.06.2004, 14:47 Uhr
mr_groove



Hallo,

kann mir jemand sagen, wie man so einen schönen Prozent-Balken in eine Dialoganwendung bekommt.

ich hatte mir das so gedacht. Ich lasse einen Timer laufen, der mir immer eine Zeit zwischen 2 und 4 Sekunden ausspuckt (random). In dieser Zeit würde ich gerne eine visualisierung mit Hilfe des Prozent-Balkens anzeigen. Der soll natürlich bis zum erreichen der Zeit schön mit hoch laufen.

das ganze soll nur eine einfache Visualisierung darstellen. Ich brauche das nur um Anzuzeigen, dass das Programm für ein paar Sekunden beschäftigt ist. Am Anfang und am Ende der Zeit, will ich ein paar Effekte einspielen, die aber schon fertig sind.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.06.2004, 15:01 Uhr
rene rosenberger



nimm das steuerelement statusbalken. den initialöisierst du am anfang mit 0 und setzt eine Range von 0 bis was weiß ich es eben gehen soll. und dann eben pro sekunde dem balken einen neuen wert zuweisen. bsp:

range : 4
start : wert 0
sekunde 1: wert "1"
sekunde 2:wert "2"
usw....
--
gruesse rene

Dieser Post wurde am 04.06.2004 um 15:01 Uhr von rene rosenberger editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.06.2004, 15:14 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


das teil ist ein CProgressCtrl... schau dir mal die members in der MSDN an, sollte alles relativ selbsterklärend sein
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.06.2004, 15:33 Uhr
mr_groove



Ich hab die progress bar jetzt eingefügt,

kann ich nun einfach auf die elemente zugreifen, etwa so:


C++:
m_progress.range=4;



Dann noch eine wirkliche Anfängerfrage. Ich habe schon herausgefunden, wie man Steuerelemente aktiviert/deaktiviert (m_steuerelement.EnableWindow(TRUE)). Aber wie geht das, wenn man das Steuerelement sichtbar bzw. unsichtbar machen muss.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.06.2004, 15:34 Uhr
Unwissende
...die wirklich Unwissende 8-)


das ist der Code für den Timer:

C++:
int i //gültig für die gesamte Klasse CCompute Dlg




C++:
void CComputeDlg::OnTimer(UINT nIDEvent)
{
    CProgressCtrl* pBar=(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
            pBar->SetPos((i)*100/range);
    CDialog::OnTimer(nIDEvent);
}


Hier ein Beispiel für die Implementierung des Rests:

C++:
int CComputeDlg::check_addressline(unsigned long start, unsigned long end)
{
             int j;
    
    m_nTimer=SetTimer(1,100,NULL);
// 1: ID des Timers 100: alle 100ms wird der Wert der Laufvar für die Progressbar abgefragt
    ASSERT(m_nTimer!=0);
//hier der Code, mit einer Laufvariablen:
z.B. so:
     for (j=0; j<100000000000; j++)
    {
          tue dies und jenes....
          i++;      
    }
    
        if (::PeekMessage (&message,NULL,0,0,PM_REMOVE))  //cancel of addresstest possible
        {
            ::TranslateMessage(&message);
            ::DispatchMessage(&message);
        }

    KillTimer(1);
    return err_count;
}



--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.06.2004, 12:49 Uhr
mr_groove



Danke,

aber irgendwie funktioniert das Beispiel bei mir nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: