CEdit für Anfänger
-
Hallo Leute,
ich habe ein Eingabefeld(CEdit).
Ich möchte das wenn ich in das Feld schreibe, das das Geschriebene in einer Variable gespeichert wird, am besten beim Enter drücken.
( Wenn ich jetzt was in das Feld schreibe und dann Enter drücke, verschwindet das Feld)
Das hier ist mein Ansatz, klappt aber nicht so ganzCString filename; m_profilname.GetWindowText(filename);
Meine zweite Frage ist,
gibt es eine Möglichkeit einen vorgegeben Test anzeigen zu lassen(ausgegraut), der beim klicken verschwindet? Also wie wie z.B. Beim Google Search
Habe das schon mit "SetCueBanner" versucht... hat auch nicht hingehaunIch bedanke mich jetzt schonmal
-
zu erstens:
erstell zu deinem CEdit eine Membervariable, dann hast du die eingabe ohne was zusätzlich machen zu müssen in deiner Variable. Wie das geht sollte hier: http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel2.htm beschrieben sein.zu zweitens:
das geht nur wenn du CEdit mit einer eigenen Klasse überschreibst und das selbst zu fuss erledigst oder dir eine entsprechende Klasse bei http://www.codeproject.com/ damit man das Rad net neu erfinden muss
-
Also es funktioniert
CString profil; m_profilname.GetWindowText(profil); //AfxMessageBox(profil); string filename = profil;
Meine zweite Frage wurde da nicht beantwortet, trotzdem danke..
-
zu 2:
1. reinschreiben: du kannst im OnInitDialog einen Standardtext beim Programmstart hineinschreiben lassen.
2. ausgrauen: Zum "Ausgrauen" brauchst du einen HBRUSH (Funktion + Variable)
3. löschen: Das musst du mit dem Handler des Edits machen, also quasi "nichts" reinschreiben und wieder brushen, diesmal weiß.
-
Für den ausgegrauten leeren Text braucht man keine Tricks.
Das kann EM_GETCUEBANNER/EM_SETCUEBANNERhttp://msdn.microsoft.com/en-us/library/windows/desktop/bb761639(v=vs.85).aspx
Vorraussetzng Common Control 6.0 Manifest