Win32-API: Auslesen eines Editfensters

Mr Apfelkuchen

Erfahrenes Mitglied
Hi,
also erstmal so eine Frage.... Kann man hier nicht noch eine rubrik für die Win32-API einführen:)?

Naja aber zu m,einem Problem ich möchte gerne in einem Programm über zwei Editfenster Kommazahlen einlesen und diese im Programm verwenden.

Das Problem dabei ist das ich 1. die Funktion zum Auslesen des Editfensters kenne und 2. das ich vermute das es als String übergeben wird und ich nich weiss wie ich den in eine Flieskomma-Zahl umwandeln soll...

Ich bedanke mich jetzt schonmal herzlichst

mfg Apfelkuchen
 
1) Die Funktion findest du bei MSDN unter GetWindowText(HWND)

2) string to float mache ich in 2 Schritten
- Komma nach rechts verschieben bis es eine ganze Zahl ist
- float = atoi(string) / 10^kommastellen
geht aber möglicherweise auch eleganter.
 
Danke:):):)

also das mit GetWindiwText funktioniert und das in eine Zahl umwandeln auch:)

Jetzt ist nur das problem das ich nich weiss wie ich mit TextOut( die Funktion verwende ich am liebsten xD) Text mit den Zahlen ausgebe. Beispiel wie bei printf:
Code:
printf("Die Zahl ist: %i",x);
Daher wüsste ich gerne wie man sowas mit TextOut bewerkstelligt oder wenn das nicht geht ob es eine andere Funktion dafür gibt.

mfg Apfelkuchen
 
C:
Du musst halt hingehen und per snprintf deinen Text formatieren. Dann ausgeben per TextOut.

C++:
- Komplexe, sehr gute Lösung: Streambuffer anlegen, der TextOut zum ausgeben nutzt.
- Einfache Lösung: std::ostringstream.

;)
 
Also das umwandeln ist mist ;) (also so wie du das machst ;) )

- Text auslesen:
Code:
length := GetWindowTextLength(hWndEdit) + 1;
string := array of char(size:= length);
GetWindowText(hWndEdit, string, length);
Das ist jetzt aber nur Pseudocode.

- String To Float/Double
- C: atof-Funktion (Header: <string.h>)
- C++: std::ostringstream (Header: <sstream>)

- Float/Double to String
- C: sprintf-Funktion (Header: <stdio.h>)
- C++: std::istringstream (Header: <sstream>)

- Text setzen:
Code:
SetWindowText(hWndEdit, string);


Referenzen:
SetWindowText function
GetWindowTextLength function
GetWindowText function
C/C++ Referenz
 
ah danke:) ich hatte die header-datei für sprintf vergessen xD
Jetzt müsste das funktionieren. Aber ich schreib wenns nich läuft nochma

Also danke schonmal:)

mfg Apfelkuchen
 
Ok jetzt noch ein Problem... dei Zahlen sollen in zusammenhang mit einer Rechnung als ein String ausgegeben werden. Dazu habe ich alle einzelnen Strings per lstrcpy und lstrcat aneinander gereit. Jetzt werden aber Zahlen und Rechenzeichen die per
Code:
lstrcat(Text,"1 + 2");
eingegeben wurden als "|" dargestellt. Irgendwie hat das was mit Breitzeichensatz oder so zu tuen aber ich weiss nich wie man das richtig machen soll...:confused:

Wäre dankbar für noch etwas Hilfe
mfg Apfelkuchen
 
Zurück