Programm regelmäßig aktiv werden lassen ?

darkarchon

Gesperrt
Hallo,

würde gerne wissen wie ich es in der mfc hinbekomme, das ich ein programm schreiben kann, welches regelmäßig von windows angesprochen wird...

also mein konkretes problem ist folgendes, ich habe ein programm welches eine uhr eingebaut hat, nur wird die uhr ja nicht weiterlaufen wenn das programm nicht aktiv ist (habe den aufruf in ONPAINT() gemacht...) aber würde das gerne so wie z.b. die windows uhr haben, das eben die uhr auch weiterläuft wenn das fenster nicht aktiv ist...

wie mache ich das ? gibts da nen befehl, oder muss ich den funktionsaufruf an eine bestimmte stelle im code schreiben ?


danke schonmal für eure hilfe...
 
Du brauchst einen Timer.

Hier mal am Beispiel eines Dialoges:
Lass dir vom Assistenten für den Dialog einen WM_TIMER-Handler einsetzen.
Der wird entsprechend deiner Vorgaben aufgerufen. Beispiel:
Code:
void CTestdlgDlg::OnTimer(UINT nIDEvent) 
{
  if ( nIDEvent == 777 )
    TRACE( "%d\n", GetTickCount() );  // Lustiger: MessageBox( "Kuckuck!" ); :-)
  
  CDialog::OnTimer(nIDEvent);
}
Dazu machst du in OnInitDialog() folgende Zeile rein:
Code:
  SetTimer( 777, 1000, 0 );
Das aktiviert einen Timer mit der ID 777, der alle 1000 Millisekunden den OnTimer-Handler aufruft. In OnTimer() wird die ID geprüft, da man ja innerhalb des Handlers durchaus mehrere Timer behandeln kann.
Zum Abschalten des Timers nimmst du das:
Code:
KillTimer( 777 );
Ausser der Möglichkeit mit dem Timer könntest du dich noch in das OnIdle() der App reinhängen, aber das ist ein bischen komplizierter.
 
danke dir, Kachelator

denke das hab ich gerafft ;)

werde das morgen mal testen... schonmal danke, sieht nämlich logisch aus was du geschrieben hast *g*
 
Zurück