C++ comment temporiser !? - Programmation
Marsh Posté le 22-05-2001 à 11:02:55
utilises un timer avec SetTimer(...) et puis dans la fonction qui le gère tu fais ce que tu veux faire.
Marsh Posté le 22-05-2001 à 11:08:00
AMDFan a écrit a écrit : Utilise les signaux et alarmes |
Ca, c'est sous unix et El gringo est un fan de windows
Marsh Posté le 22-05-2001 à 11:10:09
Verdoux a écrit a écrit : Ca, c'est sous unix et El gringo est un fan de windows ![]() |
un fan, un fan, g pas le choix moi, si j'veux que mon appli tourne sous Windows, je suis bien obligé de la développer pour windows, non !? (c d'aileur un des pbs du C, non !?)
là je suis pas sur, j'dis peut etre des conneries...
Marsh Posté le 22-05-2001 à 11:12:23
Amadeus a écrit a écrit : utilises un timer avec SetTimer(...) et puis dans la fonction qui le gère tu fais ce que tu veux faire. |
...j'voudrai pas abuser, mais j'vois pas comment ça fonctionne, pourquoi il nécessite un handler vers une fenêtre (hWnd) en paramètre ce SetTimer !?
tu pourrais pas me mettre un exemple vite fait stp !?
Marsh Posté le 22-05-2001 à 11:37:56
Verdoux a écrit a écrit : Ca, c'est sous unix et El gringo est un fan de windows ![]() |
Ah désolé, je savais qu'il y en avait encore.
Pour Windows, je n'ai pas de connaissance.
Marsh Posté le 22-05-2001 à 11:48:29
AMDFan a écrit a écrit : Ah désolé, je savais qu'il y en avait encore. Pour Windows, je n'ai pas de connaissance. |
Hé, ç
Marsh Posté le 22-05-2001 à 11:48:42
Le handle est celui de la fénêtre principale de ton appli : 2 possibilités :
1) t'utilises les mfc et dans ce cas tu crée le timer lors de l'init de ton app (dans la fonction OnInitDialog si ton app est une boite de dialog) : uiTimer = SetTimer(0, 1000, (TIMERPROC)OnTimer); /*1000 pour 1sec*/ sachant que OnTimer est la fonct qui gère l'évènement WM_TIMER que tu crées avec le class wizard
2) t'utilises directement l'api et dans ce cas dans ton WM_CREATE ou WM_INITDIALOG tu crées ton timer :
uiTimer = SetTimer(hWnd, 0, 1000, (TIMERPROC)OnTimer);
tu définis ta fonct OnTimer comme par ex :
VOID CALLBACK OnTimer(HWND hWnd, UINT Message, UINT_PTR uiIdEvent, DWORD dwTime)
{
// là tu fais ton traitement
}
El_gringo a écrit a écrit : ...j'voudrai pas abuser, mais j'vois pas comment ça fonctionne, pourquoi il nécessite un handler vers une fenêtre (hWnd) en paramètre ce SetTimer !? tu pourrais pas me mettre un exemple vite fait stp !? ![]() |
Marsh Posté le 22-05-2001 à 11:48:59
AMDFan a écrit a écrit : Ah désolé, je savais qu'il y en avait encore. Pour Windows, je n'ai pas de connaissance. |
Hé, ça te dirait pas de faire gaffe à ce que j'écrit !!??
Marsh Posté le 22-05-2001 à 11:53:55
Amadeus a écrit a écrit : Le handle est celui de la fénêtre principale de ton appli : 2 possibilités : 1) t'utilises les mfc et dans ce cas tu crée le timer lors de l'init de ton app (dans la fonction OnInitDialog si ton app est une boite de dialog) : uiTimer = SetTimer(0, 1000, (TIMERPROC)OnTimer); /*1000 pour 1sec*/ sachant que OnTimer est la fonct qui gère l'évènement WM_TIMER que tu crées avec le class wizard 2) t'utilises directement l'api et dans ce cas dans ton WM_CREATE ou WM_INITDIALOG tu crées ton timer : uiTimer = SetTimer(hWnd, 0, 1000, (TIMERPROC)OnTimer); tu définis ta fonct OnTimer comme par ex : VOID CALLBACK OnTimer(HWND hWnd, UINT Message, UINT_PTR uiIdEvent, DWORD dwTime) { // là tu fais ton traitement ![]() } |
Merci beaucoup, quand je serai un grand programmeur connu dans le monde entier je parlerai de toi à Bill Gates si tu veux !
(oui j'y crois, et pourquoi qu'j'y croiyerai pas !?)
Marsh Posté le 22-05-2001 à 12:43:06
El_gringo a écrit a écrit : Hé, ça te dirait pas de faire gaffe à ce que j'écrit !!?? ![]() |
Mais où est ce que tu l'as écrit
Marsh Posté le 22-05-2001 à 13:55:54
non, g pas dit que j'bossais sur Windows, par contre, après g dis que j'avais pas le choix; si j'veux que mon appli puisse tourner sous windows, y faut que je la develeoppe sous windows, non !?
Marsh Posté le 22-05-2001 à 14:20:56
ça y est, après mangé je viens de tout comprendre, en fait c tout simple et c carrément utile cette classe !
Marsh Posté le 22-05-2001 à 14:21:23
oups, j'allait oublier...
Merci beaucoup à tt ceux qui m'ont aidé !
Marsh Posté le 22-05-2001 à 10:37:05
Il s'agit d'un truc qu'on doit assez souvent mettre en oeuvre dans une appli et qui me parait enfait assez compilqué.
J'ai une appli qui sera toujours en tache de fond, et elle doit déclencher un traitement à une heure donnée, il y a surement moyen de faire ça sans threads et tout ce bordel (j'en veux pas de ça, c la merde !), mais comment !???
[edit]--Message édité par El_gringo--[/edit]