[c++] Statusbar met daarin tekst+variabele

Pagina: 1
Acties:

  • Japie.G
  • Registratie: Augustus 2001
  • Laatst online: 22:28

Japie.G

Colour Classic

Topicstarter
Ik heb dus een statusbar gemaakt, met daarin een tekstje dmv de volgende code.
code:
1
SendMessage(hStatusBar, SB_SETTEXT, 0, (LPARAM)(LPSTR) "Huidige tijd:");

Uiteraard komt er nu in de eerste panel van de statusbar de tekst 'Huidige tijd:' te staan. Daarachter moet een getal komen die uit een variabele wordt ingelezen. Het resultaat binnen de eerste panel moet dus eigenlijk worden:

Huidige tijd: 010101

die 010101 wordt uit een variabele genaamd getal ingelezen.
Ik snap ff niet hoek dit moet doen met die message diek daarboven gebruik. Iemand een id?? thankzz alvast

Renault Scenic E-Tech EV - PV-Output - 48kWh LiFePo4 op 15kVa Victron systeem


  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
char hats[] = "Huidige tijd: ";
tijd naar char[] converteren
twee char[]'s samenvoegen (strcat ofzo)
SendMessage(hStatusBar, SB_SETTEXT, 0, (LPARAM)(LPSTR) samengevoegde char[]);

  • Japie.G
  • Registratie: Augustus 2001
  • Laatst online: 22:28

Japie.G

Colour Classic

Topicstarter
pvdikkie, da hak kunnen weten :+

thankzz

Renault Scenic E-Tech EV - PV-Output - 48kWh LiFePo4 op 15kVa Victron systeem


  • Japie.G
  • Registratie: Augustus 2001
  • Laatst online: 22:28

Japie.G

Colour Classic

Topicstarter
Maar hek nog 1 dingetje, met strcat kan ik alleen maar een tekst àchter de variabele donderen, maar ik wil de tekst er juist vóór :P

Renault Scenic E-Tech EV - PV-Output - 48kWh LiFePo4 op 15kVa Victron systeem


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

argumenten van strcat omdraaien? ;)

of gewoon sprintf gebruiken:
code:
1
sprintf (buffer, "Huidige tijd: %d:%d", uren, minuten);

(of ostrstream gebruiken)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Japie.G
  • Registratie: Augustus 2001
  • Laatst online: 22:28

Japie.G

Colour Classic

Topicstarter
code:
1
strcat("SystemTime  ", tijd);

resulteerd in prog crash, excuses voor ongemak enzovoorts :)

es ff die andere dingen proberen

Renault Scenic E-Tech EV - PV-Output - 48kWh LiFePo4 op 15kVa Victron systeem


  • Japie.G
  • Registratie: Augustus 2001
  • Laatst online: 22:28

Japie.G

Colour Classic

Topicstarter
k krijg het niet veur mekare :'(

Renault Scenic E-Tech EV - PV-Output - 48kWh LiFePo4 op 15kVa Victron systeem


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op woensdag 29 mei 2002 19:32 schreef ShereKahn het volgende:
code:
1
strcat("SystemTime  ", tijd);

resulteerd in prog crash, excuses voor ongemak enzovoorts :)

es ff die andere dingen proberen
nogal logisch, hij voegt de tijd toe aan de buffer waarin "SystemTime" staat. Aangezien dat een const char[] buffer is, mag je daar niet in schrijven. En al mocht je dat wel, het is maar net de vraag of de data die daarachter staat beschikbaar is :)

probeer dit eens:
code:
1
2
3
char buffer[100];
strcpy (buffer, "SystemTime   ");
strcat (buffer, tijd);

kan korter, maar heb ik even zo gedaan zodat je een idee krijgt hoe het werkt. Eerst een buffer alloceren (op de stack in dit geval), dan de string SystemTime daarnaartoe kopieren, en daarachter de tijd zetten

Zo werkt het ook, scheelt je weer een copy (hoewel het uiteindelijk niet veel zal verschillen kwa gegenereerde machinecode)
code:
1
2
char buffer[100] = "SystemTime   ";
strcat (buffer, tijd);

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Probeer anders zelf een fuctie die 2 strings aan elkaar knoopt, dan kan je het helemaal zelf regelen. Dan krijg je zoiets als:

char[] combineStrings(char[] string1, char[] string2);

nog beter is:

char *combineString(char *string1, char string2);

dit laatste is lastiger, omdat je dus met pointers werkt (moet geheuge zelf regelen).
Je moet dan in een loopje de letters van de twee "strings" in een andere kopieren...

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 06-09 22:39
[quote
[code]char buffer[100] = "SystemTime ";
[/quote]

Volgens mij missen daar {}

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

farlane: nee hoor, werkt prima zo :)

tenzij je een echte array van chars bedoelt:
code:
1
char buffer[100] = { 'S', 'y', 's', 't', 'e', 'm' ... };

maar dat bedoel je vast niet ;)

als je er accolades omheen zet, dus zo:
code:
1
char buffer[100] = { "System Time" }

dan krijg je een array van strings met 1 element (dus een array van pointers naar chars) (bovenstaande stukje code werkt dus ook niet
vergelijk dat maar eens met dit:
code:
1
char *buffer[] = { "string1", "string2", "string3" };

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1