-
Hi,
ich habe vor einiger Zeit angefangen C zuprogrammieren jetzt ,allerdings stelle ich mich langsam auf Winapi um ,damit ich von diesen schwarzen Dos / cmd Fenster wegkomme.
Nun bin ich soweit gekommen ,dass ich es schaffe Fenster mit Buttons und Editfelder
(ich hoffe ich bezeichne mit diesen Begriff den richtigen Bestandtei(ich meine dies Felder wie sie auch der editor nutzt usw. da wo man was reinschreiben kann ))zuerstellen.
Aber ich schaffe es nicht, die Eingabe die man in das Feld tätigen soll, in eine Variabele oder string zuspeichern.
Ich habe auch schon gegooglet, aber ich bin nur auf Funktion namens "text ->" gekommen.
Könnte mir deshalb jemand einen (simplen) Befehl nennen,und noch eine kleine Syntax, damit man Editfelder auslesen kann ?
Schon mal Danke im vorraus
-
18.02.10 13:21 #2
- Registriert seit
- Feb 2004
- Ort
- Ehingen (BW)
- Beiträge
- 41
Beschäftig dich bitte nochmal mit den Grundlagen der Objektorientierung.Ich habe auch schon gegooglet, aber ich bin nur auf Funktion namens "text ->" gekommen.
Konkret: Klassen, Objekte und Pointer.
"text" dürfte hier im Kontext ein Pointer auf ein Objekt der Klasse CEdit (oder vergleichbares) sein.
Im Klartext hast du irgendwo sowas oder sowas ähnliches stehn:
Code :1
CEdit *text = new CEdit();
Anyways, falls text eine Membervariable für dein Feld ist bzw. Deinem Feld korrekt zugeordnet ist kannst du bspw. auf die Funktion
"GetWindowText()" zurückgreifen.
(bin mir grad nicht sicher ob das MS standard ist oder ob wir die Funktion einfach kreiiert haben)
Dies würde dann bspw folgendermaßen aussehen:
Code :1 2
CString strTmp; text->GetWindowText(strTmp);
strTmp sollte nun den Inhalt deines Feldes halten.
/e: Kurz angeschaut, die Methode "GetWindowTextA(CString &str)" existiert, damit sollte obiger Aufruf funktionieren.
Und noch ne Anmerkung: Falls "text" nicht als Pointer deklariert ist (also bspw als "CEdit text;" ), sollte es text.GetWindowText(strTmp); tun.
Wie gesagt lies unbedingt(!!) Nochmal Grundlagen zum Thema Objekte, Klassen, etc.in C++.
/e: Relevanz verloren:
Sollte dieser aufruf so nicht möglich sein halt dich an:
Code :1 2 3 4 5 6 7
Syntax int GetWindowText( HWND hWnd, LPTSTR lpString, int nMaxCount );
Parameters
hWnd
[in] Handle to the window or control containing the text.
lpString
[out] Pointer to the buffer that will receive the text. If the string is as long or longer than the buffer, the string is truncated and terminated with a NULL character.
nMaxCount
[in] Specifies the maximum number of characters to copy to the buffer, including the NULL character. If the text exceeds this limit, it is truncated.Geändert von PoebelundGesocks (18.02.10 um 13:43 Uhr) Grund: Erklärung erweitert, Tip geändert.
-
Ok,vielen Dank erst mal .
Aber das war nicht ganz das was ich gesucht habe,oder vlt. mache ich einen Fehler,denn wenn ich GetWindowsText benutze holte er immer den Namen des Fensters in dem das Editfeld ist und nicht den Inhalt bzw. meine Eingabe
PS
ie Objektorientirung werde ich mir nochmal ankucken
-
18.02.10 15:07 #4
- Registriert seit
- Feb 2004
- Ort
- Ehingen (BW)
- Beiträge
- 41
Uhm hast du das ding als Control oder als simple Membervariable angelegt? (Ich glaub da hab ich vorher etwas doof erklärt.)
Wenn du den Titel des Dings kriegst biste schon aufm richtigen Dampfer.
CWnd::GetWindowText()
schau hier mal drüber, achte auf "Remarks"
Sollte dann gehn.
-
Cwnd:: mag mein compliere nicht besonders, was daran liegen kann, dass ich es werde als memberfunktion noch als Contorl definiert habe
wie gesagt ich bin ein Anfänger in Winapi und als ich zumersten mal Win32-projekt gestartet habe...hat mir mein Compliere keine Klassen und so aufgemacht,
sondern hat im header nur die IDC vom fenster definiert und eine RC-datei erstellt wo man das noch weiter verfeinern konnte ... also habe ich daran weiter geknüpft ...
Code von resurce.h
Code von resource.rc#include <windows.h>
#define DLG_MAIN 101
#define IDC_BTN_OK 102
#define IDC_EDT 1001
aber in meinen DialogProc() habe ich das Fentser und die anderen Teile nicht mit WM_Create() erstellt, sondern einfach die Header und die Rc-datei includehiert und noch die WM_Close usw. definiert ...#include "resource.h"
DLG_MAIN DIALOGEX 6, 5, 150, 106
CAPTION "Identifizierung"
FONT 8, "MS Sans Serif", 0, 0, 1
STYLE 0x10CE0804
BEGIN
CONTROL "&Bestätigen", IDC_BTN_OK, "Button", 0x10010000, 60, 70, 46, 15
EDITTEXT IDC_EDT,10,30,130,15,NOT 0x100100000
ENDGeändert von cTyp (18.02.10 um 19:47 Uhr)
-
habs doch noch geschafft mit
GetDlgitemTextA
Danke
Ähnliche Themen
-
Konvertierung VCL Editfeld Inhalt in char
Von MaRlik im Forum C/C++Antworten: 3Letzter Beitrag: 27.05.09, 15:11 -
Java-Datei als Text auslesen, Inhalt durchsuchen und modifiziert speichern
Von jorgeHX im Forum JavaAntworten: 5Letzter Beitrag: 11.03.07, 20:34 -
combobox und editfeld speichern!
Von Nohh im Forum Delphi, Kylix, PascalAntworten: 4Letzter Beitrag: 05.03.07, 21:52 -
E-Mail-Inhalt auslesen und speichern
Von Fleck06 im Forum PHPAntworten: 1Letzter Beitrag: 14.05.06, 20:35 -
Inhalt von Iframe auslesen und ggf. speichern.
Von topfklao im Forum PHPAntworten: 6Letzter Beitrag: 09.02.05, 21:48



1Danke


Zitieren
Login






