::setWindow / ::getWindow

Krikus

Mitglied
Hi,

ich hänge da z.Z an einer Sache dran.

Ich habe 2 Edit-Felder.
Im ersten Edit-Feld ist reiner Text -> CString
Das zweite Edit-Feld kann nur Zaheln beinhalten -> long.

Nun weiß ich nicht wie ich das zweite Edit Feld einlesen bzw. abfragen soll.
Oder muss ich den CString nach long casten?

C++:
//erste Edit-Feld
 (void) ::SetWindowText(GetDlgItem(IDC_LOGFILENAME),m_GlobalPolicy.GetLogFileName());
char    szNewFileName[MAX_PATH+1];
::GetWindowText(GetDlgItem(IDC_LOGFILENAME),szNewFileName,MAX_PATH+1);
//zweite Edit-Feld
long	NewLogFileSize;
?
 

MCoder

Erfahrenes Mitglied
Hallo Krikus,

casten geht nicht, du musst zwischen den Datentypen konvertieren. Eine Möglichkeit wäre es, die stringstream-Klasse der STL zu benutzen:
C++:
#include <sstream>

long NewLogFileSize;

// schreiben
std::stringstream sstr;
sstr << NewLogFileSize;
::SetWindowText(GetDlgItem(IDC_...), sstr.str().c_str());

// lesen
char szNewFileName[MAX_PATH+1];
::GetWindowText(GetDlgItem(IDC_...), szNewFileName, MAX_PATH);

std::stringstream sstr(szNewFileName);
sstr >> NewLogFileSize;
Gruß
MCoder