countdown
-
Wie kann ich einen Countdown machen?
ich will, dass alle (von mir aus) 5 Sek. der Wert der Variabel m_Zahl um eins verringert wird... wie mach ich das?
Gruß
wili-wursti
-
Dann musst du ein Timer bauen...
Schau Folgendes Tutor an, Tag 4
http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/start.htmGruß
:: NoName ::
-
kann man das nicht iregndwie so machen:
for (m_zahl = 30; m_zahl>=0; m_zahl--)
{
hier dann iregndwie ne verzögerung
}???
-
Joa, aber eine Schleife blockiert immer deine Anwendung.
Wenn, dann müsstest du das alles in 'nem Thread laufen lassen...Die Verzögerung könntest du mit Sleep() erreichen.
Gruß
:: NoName ::
-
kannst du mal bitte nen Quelltext posten?
-
Welchen Quellcode? Threads?
Such im Board, da gibs genügend...
Gruß
:: NoName ::
-
habichshcon, da find ich nciht wikrlich was
-
Hier hab ich mal ein kleines 'SchnellTutorial' geschrieben wie man ein Timer bastelt
Gruß
:: NoName ::
-
:: NoName :: schrieb:
Lege dir einfach eine private Variable an, sagen wir mal diese heißt
UINT m_nTimer;
Dann erstellst du dir die WM_TIMER und schreibst das "Grundgerüst" für die Timerfunktion rein.
void CTestDlg::OnTimer(UINT nIDEvent) { if(nIDEvent == m_nTimer) { // Hier der Code der ausgeführt werden soll wenn die WM_TIMER aufegerufen wird } }
Jetzt kannst du mittels SetTimer() und KillTimer() die Timerfunktion starten und beenden.
Timer setten
SetTimer(m_nTimer, 1000, NULL); // 1000 steht für eine Sekunde
Timer killen
KillTimer(m_nTimer);
Das wars auch schon.
Gruß
:: NoName ::und wie kann ich eine private Variable anlegen??
-
Hello
Geh zur Klassenansicht (Projektmanager, Klassen), wähle die entsprechende Klasse aus, in der du die Variable erstellen willst, klicke die rechte Maustaste und wähle dann "Membervariable hinzufügen". Unter Variablentyp schreibst du UINT und unter Bezeichnung den Variablennamen. Danach klickst du noch den Radiobutton mit der Bezeichnung "Privat" an und drückst dann die Taste "OK"....
Du kannst das natürlich auch von Hand machen...Geh dazu ebenfalls in die Klassenansicht und doppelklicke die gewünschte Klasse. Danach erscheint dir rechts der Code des Headerfiles. Im Konstruktor legst du dann (falls noch nicht existent) einen Bereich mit der Bezeichnung private fest. Meistens sind da schon welche, die sich public und protected nennen. Für weitere Erklärungen siehe hier:
http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/start.htm
Danach kannste dann deine gewünschte Variable dort deklarieren...
Also einfach unterhalb reinschreiben: UINT m_nTimer; ....Hoffe das hilft dir weiter...
Gruzzz Danny
-
Du gehst in die CDeineKlasseDlg.h rein und schreibst am Ende des Headers die private Variable.
So solllte das aussehen
. . . afx_msg void OnTimer(UINT nIDEvent); afx_msg void OnRamLeeren(); //}}AFX_MSG DECLARE_MESSAGE_MAP() [u]private: UINT m_nTimer;[/u] }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_RAMCLEANERDLG_H__E28C869C_392D_49C6_80BE_C2B7E382AF47__INCLUDED_)
Gruß
:: NoName ::
-
@NoName: Na da haben wir wohl gerade beide zur gleichen Zeit am Beitrag geschrieben...Aber CodeBeispiele sind immer besser...Wird anschaulicher...Muss ichmir merken!
-
Danny McHould schrieb:
@NoName: Na da haben wir wohl gerade beide zur gleichen Zeit am Beitrag geschrieben...Aber CodeBeispiele sind immer besser...Wird anschaulicher...
genau das dachte ich auch als ich dein Text gelesen habe
Gruß
:: NoName ::
-
ok, danke @all,
ich habs jetzt hingekriegt...
Thanks, wili-wursti