Editfenster verwenden

alixander

Mitglied
hi leute
Obwohl ich für mein letztes Problem keine Antworten bekomme hab, hab ich es gelöst, aber schon stehe ich vor dem nächsten. Wie kann ich den Text den ich in ein Edit fenster(hEdit2 = CreateWindow ("EDIT",NULL,WS_VISIBLE | WS_CHILD, 430, 50, 70, 20, hwnd, 0, GetModuleHandle (NULL), 0) welches ich so erstellte, verwenden. Ihn also ihn eine Variable, schreiben die ich dann zum Beispiel in einen Integer verwandeln kann . Naja ich hoffe mal ich hab dieses mal mehr Glück als beim letzten Mal-also Leute bitte helft mir-danke
 
Hiet eine Lösung, wobei edit ein pointer auf eine CEdit ist:
Code:
int lines = edit->GetLineCount();
CString input;
//count the maximum buffer length
int bufLength = 0;
for (int i=0; i<lines; ++i) {
	bufLength += edit->LineLength(i);
}
LPTSTR buf = input.GetBuffer(bufLength);
int llength;
for (i=0; i<lines; ++i) {
	llength = edit->LineLength(i);
	llength = edit->GetLine(i, buf, llength);
	buf += llength;
}
PS: Obwohl Dir auf Dein letzter Eintrag niemand geantwortet hat, so kann man doch sicher sagen, dass Du dafür viel gelernt hat :-)

gruss

toggm
 
@toggm: Deins ist eine MFC-Lösung, es wurde aber - glaube ich - eine reine WinAPI-Lösung benötigt. Wenn ich später Zeit habe, kann ich vielleicht eine raussuchen.
 
@Kachelator
wäre echt nett, wenn du mal eine Lösung von dir reischreiben würdest, ich hab die andere nicht so ganz verstanden, naja dann danke schon mal- mfg
 
Hier ein kurzes Beispiel, dass den Text von einem Fenster holt und in ein Integer umwandelt. Der Text kann ein Fenstertitel sein oder auch der Inhalt einer Editbox.
Code:
  // ein Fenster wird gebastelt
  HWND hwnd = CreateWindow( ... );
  
  ...
  
  // Textlänge holen
  int   iLength = ::SendMessage( hwnd, WM_GETTEXTLENGTH, 0, 0 );

  // Buffer allozieren
  char* pDummy = new char[iLength + 3];

  // Text holen
  ::GetWindowText( hwnd, pDummy, iLength + 1 );

  // spasseshalber in int umwandeln 
  int i = atoi( pDummy );  

  // Buffer freigeben nicht vergessen!
  delete[] pDummy;
Was du hier siehst, ist, wie die Kommunikation mit dem Fenster über HWND und SendMessage abläuft. Alle anderen Operationen laufen sinngemäss genauso ab - du musst nur die richtigen Windowmessages (WM_...) und Parameter an das entsprechenen Fenster schicken. Editboxen verstehen eine Reihe von besonderen Messages, die alle mit EM_ anfangen. Dazu findest du in der MSDN Lib mehr Informationen (Index verwenden!).
 
Zurück