Avatar billede dejbjerg Nybegynder
19. oktober 2001 - 23:35 Der er 4 kommentarer og
2 løsninger

Vise variable i vindue (MFC)

Hvordan viser jeg værdien af mine variable i mit vindue?

CDC* pDC

pDC->TextOut(...) tager kun imod strenge som argument og jeg ville meget gerne undgå at skulle parse alle mine int, float osv.
til CString, TCHAR [] eller char* \'ere.

Findes der en nemmere måde at få variable repræsenteret i vinduet på?

Hvis ikke - findes der en funktion et sted, som kan konvertere for mig?
Avatar billede joha Nybegynder
20. oktober 2001 - 02:05 #1
Du kan bare bruge \"wsprintf\"
Her er et lille eksempel:

int nMyInt =4;
const float PI = 3.14;

TCHAR szTxt[MAX_PATH];
wsprintf(szText, TEXT(\"nMyInt indeholder tallet: %i og pi er: %f\"), nMyInt, PI);

pDC->TextOut(szText, ...);

Ps: koden er ikke testet...

Avatar billede jpk Nybegynder
20. oktober 2001 - 10:14 #2
Er det en doc/view app? Og i så fald, hvad baserer du dit view på?

Du kan jo kalde MFC\'s DDX-funktioner til at foretage konverteringen!
Du kan naturligvis også lave egne konverteringer som:

CString strFmt;
strFmt.Format(\"%d\", IntegerVal);
strFmt.Format(\"%f\", FloatVal);
Avatar billede dejbjerg Nybegynder
21. oktober 2001 - 01:11 #3
joha>
Avatar billede dejbjerg Nybegynder
21. oktober 2001 - 01:29 #4
Hovsa!

joha> Tak for svaret! Jeg er dog ikke så vild med at skulle sætte mig fast på en størrelse for min streng [MAX_PATH], men svaret er gyldigt og fortjener point.

jpk> Ligeledes tak! Ja det er en doc/view app og mit view er baseret på CScrollView - hvorfor? Mht. til dit lille eksempel, så var det lige det jeg ledte efter. DDX - er det ikke sådan noget data exchange noget? Hvordan kan jeg bruge det? Kan det ikke kun bruges i en dialogbox?

Til jer begge> Er der en måde hvorpå jeg kan give jer 15 point hver? 7/8 synes mig lidt fedtet.
Avatar billede jpk Nybegynder
21. oktober 2001 - 15:36 #5
Grunden til jeg spørger efter dit view\'s baseklasse er, at hvis det var baseret på CFormView, kunne du anvende DDX (Dialog Data Exchange). Dette er dog ikke at foretrække, hvis layoutet skal ændre sig dynamisk.

DDX-funktionerne er jo i virkeligheden bare nogle globale funktioner der håndterer overførslen mellem data og control\'s. Du kunne jo selv implementere noget lign. så du slipper for at lave alle disse \'grimme\' konverteringer in-place!

Ang. point, så er det pænt af dig at tilbyde os 15 point hver! Jeg vil tro du bare kan hæve antallet til 30 og så fordele...
Avatar billede dejbjerg Nybegynder
22. oktober 2001 - 03:00 #6
Som sagt så gjort - tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester