Eingabefeld

shader09

Erfahrenes Mitglied
Guten Morgen,
sitze jetzt schon paar Stunden dran.
Unzwar möchte in ein Eingabefeld eine Zahl aus einer Variable einlesen.
Das macht man ja eigentlich mit SetWindowText() oder SetDlgItemText()
oder liege ich da falsch!? Is ja eigentlich nicht so das Problem
daher denke ich mir kann jemand helfen. Würde mich aufjedn drüber freuen.
*THX*

So das ist mein jetztiger Code;

Code:
void CEinstellungDlg::OnSetfocusEdtTag() 
{
  SYSTEMTIME Tag;
  GetSystemTime(&Tag);

  CString m_tag = Tag.wDay;
  
  SetDlgItemText(IDC_EDT_TAG, m_tag);
}

Das Problem ist jetzt nur noch das ich in dem Eingabefeld statts einer
Zahl jetzt ein Viereck drin steht. Wie bekomme ich das jetzt hin.
 
Zuletzt bearbeitet:
Hallo,

laut MSDN

Code:
BOOL SetDlgItemText(      
    HWND hDlg,
    int nIDDlgItem,
    LPCTSTR lpString
);

muss das ein LPCTSTR und kein CString. Dann dürfte auch das "Viereck" weg sein.
 
muss das ein LPCTSTR und kein CString. Dann dürfte auch das "Viereck" weg sein.
Das spielt keine Rolle, die CString-Klasse beeinhaltet eine implizite Konvertierung zu LPCTSTR.

-----

@shader09
"wDay" ist eine numerische Variable und muss zunächst in einen String konvertiert werden:
C++:
CString m_tag;
m_tag.Format(_T("%d"), Tag.wDay);
 
SetDlgItemText(IDC_EDT_TAG, m_tag);
BTW: Es ist kein guter Stil, lokale Variablen mit "m_" beginnen zu lassen.

Gruß
MCoder
 
m_ das kommt bestinmmt nicht von mir, ist eine Membervariable.
Also hat eMbedded Visual für mich sozusagen erstellt.

CString m_tag;
m_tag.Format(_T("%d"), Tag.wDay);

Das hatte ich auch schon ausprobiert, nur da kam dann ein Fehler.
Jetzt weiß ich auch warum.
Hab das %d nicht mit _T( ) geschrieben.
Warum auch so, würde es gene verstehen wollen!?

Geil grad mal ausprobiert und es klappt. MCoder du bist der beste, einfach Prima*g*freu*
Vielen Dank auch an BOND_WR
 
Zurück