textbox auslesen GetWindowText
-
Hallo zusammen,
zuerst zu mir. Ich hab vor nicht langer Zeit mit C/C++ angefangen und taste mich gerade an GUI's mit Visual studio ran. (Windows Forms)Ich möchte einen Chat schreiben fürs Netzwerk und auf der Konsole gehts schon gut. Auch Threading, winsock, etc. pp.
Eine Gui wäre aber schöner.
Ich scheitere jedoch daran eine textbox auszulesen und in einen char xx[20]; zu schreiben. Das brauch ich halt für winsock.
Textbox füllen mache ich über:
textBox1->AppendText (gcnew String((char*)Name));
Ist eine Multiline!Nur auslesen schaff ich nicht.
Ich habs mit Getwindowtext probiert:
char string [20];
GetWindowText(textBox1, string, 20);Dann kommt:
1>c:\dokumente und einstellungen\ferdinand\eigene dateien\visual studio 2008\projects\open_chat\open_chat\Form1.h(161) : error C2664: 'GetWindowTextW': Konvertierung des Parameters 1 von 'System::Windows::Forms::TextBox ^' in 'HWND' nicht möglich
1> Es ist kein benutzerdefinierter Konvertierungsoperator verfügbar, oder
1> Ein verwalteter Typ kann nicht in einen nicht verwalteten Typ umgewandelt werdenBitte helft mir
Danke
-
freddyv.95 schrieb:
Hallo zusammen,
zuerst zu mir. Ich hab vor nicht langer Zeit mit C/C++ angefangen und taste mich gerade an GUI's mit Visual studio ran. (Windows Forms)Es gibt C, C++ und C++/CLI - das sind alles (deutlich) unterschiedliche Sprachen! C++/CLI ist eine .NET Sprache (!).
Zu C++/CLI, vorallem Windows Forms: http://www.c-plusplus.net/forum/263084
Als Rat: Nimm entweder C++, C# oder Java, etc. aber nicht C++/CLI. Du hast damit Probleme die Du sonst nicht hast und es bringt 0 Vorteil!Ich scheitere jedoch daran eine textbox auszulesen und in einen char xx[20]; zu schreiben. Das brauch ich halt für winsock.
Und das ist genau so ein Problem: In nativem C++ ist das kein Problem - alles managed ist auch kein Problem - bloss halt wenn mans mischt ist es eins!
Du kannst versuchen ein genügend grossen std::vector<char> anzulegen und die Daten aus der Textbox Zeichen für Zeichen hineinzukopieren. Danach steht dir mit &v[0] und v.size() der benötigte Buffer zur Verfügung (v ist vom Typ std::vector<char>).
Das ist nur eine Idee - ev. löst man das anders / besser...Simon
Edit
Noch ein Hinweis: GetWindowText ist von der nativen WinAPI! Das kann (jedenfalls nicht so einfach) und sollte nicht mit der managed Kapselung namens Windows Forms verwendet werden!!!
-
Vielen dank erst mal. Da mir (zumindest bisher) c ganz gut gefallen hat, glaub ich wäre es gescheit anders die guis zu programmieren. Gibt es da eine Empfehlung? Kann ich dann weiterhin Visual Studio verwenden?
Ich bin noch Schüler und mache das mehr so nebenher und hab daher keine Lust wirklich was auszugeben.
-
Nimm C# mit WinForms/WPF!
Oder Qt mit C++.