[API]envoyer l'heure dans ma fenetre

Résolu
shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
- 7 déc. 2005 à 12:50
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
- 7 déc. 2005 à 16:14
Bonjour,



on m'a donné la fonction afin d'avoir l'heure systeme, je la met dans
un tampon et j'aimerai pouvoir l'afficher dans la fenetre du bloc notes
que j'ai crée cette semaine, le probleme est que quand je met
setwindowtext() cela efface le tecte déja tapé, et que je voudrai que
l'heure se mettre la ou le pointeur est. (désolé j'ai un peu du mal a
expliquer j'espere que c'est clair...





voici le code:

SYSTEMTIME time;

GetSystemTime(&time);

lenbloc = GetWindowTextLength(hEdit);

tampon = (LPSTR)GlobalAlloc(LMEM_FIXED, lenbloc + 11);

sprintf(tampon, "%d::%d::%d", time.wHour, time.wMinute, time.wSecond);

//et la le miracle pour afficher l'heure dans la fenetre hEdit la ou est le pointeur :D



GlobalFree(tampon);


.

14 réponses

BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
7 déc. 2005 à 15:33
Mais où c'est galère ????

void __stdcall OnDateDoc(HWND hedit)
{
SYSTEMTIME st;
char buf[12];
GetLocalTime(&st);
GetDateFormat(0, 0, &st, "dd/MM/yyyy ", buf, 12);
SendMessage(hedit, EM_REPLACESEL, 1, (LPARAM) buf);
}

tout de même pas la lune, suffit de regarder MSDN suivant infos qu'on te donne.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
7 déc. 2005 à 15:49
ah oui et avec l'heure:


void __stdcall OnDateDoc(HWND hedit)
{
SYSTEMTIME st;
char buf[24];
GetLocalTime(&st);
GetDateFormat(0, 0, &st, "dd/MM/yyyy ", buf, 12);
GetTimeFormat(0, 0, &st, "HH:mm:ss", buf + 11, 10);
SendMessage(hedit, EM_REPLACESEL, 1, (LPARAM) buf);
}


Compliqué, hein...

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

7 déc. 2005 à 12:51
ah ouai et si qqn connaissait la fonction pour recuperer la date
par l'API comme je fais pour l'heure merci de me le dire (dsl j'en
demande un peu beaucoup peut etre)
.
0
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
12
7 déc. 2005 à 13:32
Ton GlobalAlloc est faux (alloue 0 si ton edit est vide) Déclare un buffer local de 20 octets, ca suffira bien.
Pour insérer la ou est le pointeur, vois le message EM_REPLACESEL
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
12
7 déc. 2005 à 13:33
SI ton edit est vide, 11 octets seront alloués c'est vrai, mais quand même ce GetWindowTextLength n'a rien a faire la
0
niketou
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010

7 déc. 2005 à 13:41
#include <time.h>

time_t t;
time(&t); /* t contient maintenant l'heure et la date courante */
0
shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

7 déc. 2005 à 14:08
ouai désolé j'ai pris une mauvaise portion de code que j'avai fait
avant, mais BruNews m'avais dis sa sauf que y a pas grand chose qui
l'explique sur msdn :s je n'arrive pas a comprendre comment envoyer le
texte a la fenetre déja :D



voici le code :



SYSTEMTIME time;

GetSystemTime(&time);

tampon = (LPSTR)GlobalAlloc(LMEM_FIXED, 20);

sprintf(tampon, "%d::%d::%d", time.wHour, time.wMinute, time.wSecond);

//le code



GlobalFree(tampon);
.
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
7 déc. 2005 à 14:09
time.h n'a rien à faire dans du code Windows.

Remplace sprintf par GetDateFormat et tu pourras aussi virer stdio.h

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

7 déc. 2005 à 14:31
ok merci déja, mais pour envoyer l'heure a la fenetre de mon bloc notes ...?
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
7 déc. 2005 à 15:05
SetWindowText
EM_REPLACESEL

à toi de voir ce qui convient à ton prog.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

7 déc. 2005 à 15:07
o pis laissez tombé c'est trop galère pis ca me gave trop cette fonction de mettre l'heure, le gars il a qu'a la rentrer lui meme

.
0
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
12
7 déc. 2005 à 15:54
Pour le coup, je pense que GetDateFormat ne doit pas être bien meilleure que sprintf, surement pire.
0
shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

7 déc. 2005 à 16:05
désolé ca m'a gavé tout a l'heure car j'avais un bug, j'arrivai bien a afficher date et heure mais ca affichait 22/94/1474 dans la date donc ca me gavais mais merci :)
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
19
7 déc. 2005 à 16:14
sur vecchio, juste pour éviter stdio.h et rester cohérent en terme de prog.
Pour vitesse il y a la fonction dans mes sources je pense sinon la demander.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0