Einbauen einer Funktion in die Prozedurschleife eines Dialogs

drvj

Mitglied
Hallo,
mein Problem ist, dass ich nicht weiß, wie ich eine Prozedur ständig aufrufe, sodass beispielsweise die Uhrzeit ständig akutalisiert und angezeigt wird.

Welche Funktion des Dialogs muss ich überschreiben, sodass ich meine Prozedur aufrufen kann?

Vielen Dank im voraus,

mfg Jens
 
Brauchst Du einen Timer, der nach einer speziellen Zeit (in ms) eine Funktion aufruft, dann machst Du einfach
Code:
unsigned int vDauer=3000;//3000 millisekunden
SetTimer(WM_TIMER,MS_DAUER);
und dann irgendwann wieder
Code:
KillTimer(WM_TIMER);
ausserdem solltest Du dann natürlich im Klassen-Assistenten eine Funktion auf das Ereignis WM_TIMER von Deinem Hauptfenster verknüpfen. Dort kannst Du Deine Aktualisierungs-Funktion aufrufen.
 
hallo,
erstmal danke für die antwort,
dann die Funktion SetTimer sieht anders aus:
PHP:
UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );
Und da liegt mein neues Problem. Kann ich den ersten Parameter mit einer beliebigen Zahl versehen und muss ich dann später bei der OnTimer( UINT nIDEvent ) abfragen?
Folgendes habe ich probiert, geht jedoch nicht:
PHP:
BOOL CDavidgotchiDlg::OnInitDialog()
{ ...
SetTimer(1,1000,NULL);

return TRUE;  // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}
Meine OnTimer Funktion:
PHP:
void CDavidgotchiDlg::OnTimer(UINT nIDEvent) 
{
	if (nIDEvent == 1)
	{
		// TODO: Code für die Behandlungsroutine für Nachrichten hier einfügen und/oder Standard aufrufen
		CPaintDC dc(this);
		pHud.drawHud(&dc,0,0,0,0,0,0,0);

	}
	CDialog::OnTimer(nIDEvent);
}
Folgendes müsste passieren: Ich habe eine Statusanzeige, die bei Programmstart auf 50 steht. Wenn der Timer abgelaufen ist, soll sie auf 0 sinken.

Vielen Dank im voraus,

mfg Jens
 
die Dialog Klasse hat eine Entsprechende SetTimer Methode um auf die Call Back zu verzichten , ergo geht Thomas seine Lösung auch
 
Zurück