tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von cTyp
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
1454
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    cTyp cTyp ist offline Grünschnabel
    Registriert seit
    Feb 2010
    Beiträge
    4
    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
     

  2. #2
    PoebelundGesocks PoebelundGesocks ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Ort
    Ehingen (BW)
    Beiträge
    41
    Ich habe auch schon gegooglet, aber ich bin nur auf Funktion namens "text ->" gekommen.
    Beschäftig dich bitte nochmal mit den Grundlagen der Objektorientierung.
    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.
     

  3. #3
    cTyp cTyp ist offline Grünschnabel
    Registriert seit
    Feb 2010
    Beiträge
    4
    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


    PSie Objektorientirung werde ich mir nochmal ankucken
     

  4. #4
    PoebelundGesocks PoebelundGesocks ist offline Mitglied Bronze
    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.
     

  5. #5
    cTyp cTyp ist offline Grünschnabel
    Registriert seit
    Feb 2010
    Beiträge
    4
    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
    #include <windows.h>


    #define DLG_MAIN 101
    #define IDC_BTN_OK 102
    #define IDC_EDT 1001

    Code von resource.rc
    #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


    END
    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 ...
    Geändert von cTyp (18.02.10 um 19:47 Uhr)
     

  6. #6
    cTyp cTyp ist offline Grünschnabel
    Registriert seit
    Feb 2010
    Beiträge
    4
    habs doch noch geschafft mit

    GetDlgitemTextA

    Danke
    PoebelundGesocks bedankt sich. 

Ähnliche Themen

  1. Konvertierung VCL Editfeld Inhalt in char
    Von MaRlik im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 27.05.09, 15:11
  2. Antworten: 5
    Letzter Beitrag: 11.03.07, 20:34
  3. combobox und editfeld speichern!
    Von Nohh im Forum Delphi, Kylix, Pascal
    Antworten: 4
    Letzter Beitrag: 05.03.07, 21:52
  4. E-Mail-Inhalt auslesen und speichern
    Von Fleck06 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 14.05.06, 20:35
  5. Antworten: 6
    Letzter Beitrag: 09.02.05, 21:48

Stichworte