Nach Abfrage einen Text in den Edit schreiben.....



  • Und wie ist so ein Rich Edit Control aufgebaut ?
    Muss man das auf irgendeiner Art und Weise definieren oder deklarieren?
    Aber das wichtigste was ich nicht erstehe, wie funzt das jetzt mit dem Befehl, das nach einer Abfrage in der Edit Control gespeichert wird ?
    Hab das mal so aus gutem Wissen ausprobiert, was aber auch nicht funktioniert :
    ________________

    string::text;
    text = "Blabla.";
    SendMessage(hWnd, WM_SETTEXT, NULL, (LPARAM)text.c_str());

    _______________

    das klappt aber auch nicht 😞



  • Und wie ist so ein Rich Edit Control aufgebaut ?
    Muss man das auf irgendeiner Art und Weise definieren oder deklarieren?
    Aber das wichtigste was ich nicht erstehe, wie funzt das jetzt mit dem Befehl, das nach einer Abfrage in der Edit Control gespeichert wird ?
    Hab das mal so aus gutem Wissen ausprobiert, was aber auch nicht funktioniert :
    ________________

    string::text;
    text = "Blabla.";
    SendMessage(hWnd, WM_SETTEXT, NULL, (LPARAM)text.c_str());

    _______________

    das klappt aber auch nicht 😞



  • Schau dir doch erstmal die Links von tenchou an 😉



  • Daraus werd ich nicht schlau.
    Da steht ja nicht mal ein beispel 😞



  • msdn schrieb:

    To create a rich edit control, call the CreateWindowEx function, specifying the rich edit window class. If you are using Microsoft Rich Edit 1.0 (Riched32.dll), specify "RichEdit" for the window class parameter. If you are using Rich Edit 2.0 or later (Riched20.dll), specify RICHEDIT_CLASS for the window class parameter.

    ...dafür wäre nen Beispiel absoluter Overkill 😉



  • Also das Rich Edit Control hat mich eigentlich weniger interessiert, eigentlich wollte ich wissen wie man was nach einer Abfrage in den Edit schreibt.



  • SetWindowText()



  • Ok Danke.
    Aber wie setze ich SetWindowText() in einer Abfrage ein ?
    braucht man auch hier eine Structur oder ne definition !?
    Bin dankbar für jede Antwort. 😃
    Also ich habe das mal so in einer ganz einfachen switch Abfrage versucht.
    Hat aber nicht so ganz geklappt^^.
    Also hier mein Versuch :

    case WM_COMMAND:
                                                                                                                                                          {
                                                                                                                                                                     if(lParam ==(LPARAM)hButton_1)
                                                                                                                                                                     {
    
                                                                                                                                                                          hButton_1->SetWindowText("Neuer Text");
                                                                                                                                                                         }
                                                                                                                                                                         return 0;
                                                                                                                                                                         }
    




  • Das ist doch ein Button Tutorial und kein SetWindowText() Befehl. 😕



  • Ich kapier des einfach nicht.
    Wie geht das ?
    Ich hab es schon mit buffer'n versucht aber die kann ich nicht nochmal in einer switch Abfragen, weil man die nur da an ort und stelle deklaieren kann.
    Also wie muss des bei SetWindowTExt() ausshauen ?



  • Was meinst du?



  • case muss einen block öffnen um variable zu deklarieren

    case WM_WURSTBROT:
    {
    }
    break;
    


  • Also: User klickt auf deinen Button und darauf hin soll etwas in das Textfeld geschrieben werden?

    Wenn auf nen Button geklickt wird, wird eine WM_COMMAND-Nachricht erzeugt.
    Bei Verarbeitung von WM_COMMAND musst du erstmal rausfinden ob die WM_COMMAND überhaupt von dem Button kommt (du könntest ja mehrere haben) und dann musst du noch nachgucken was der Button überhaupt von dir will. Diese Infos stehen in wParam und lParam drin.
    Daher der Link zum Button-Tutorial.

    Wenn der korrekte Button gedrückt wurde, rufste halt einfach SetWindowText(HandleDesTextFelds,"DerNeueText"); auf und fertig.



  • Ok, dann auf deutsch zum mitschreiben.
    Könnte mir vlt einer so ein kleines bsp. machen ?
    Also entweder will das SetWindowTExt()-Befehl nicnt so recht mit mir,, oder es will einfach net funzen.

    Ich bin erst 14, und check noch nicht so ganz dieses Fach Chinesisch nicht so recht.
    Ich kapier nur so einzelne Wörter, aber nicht den ganzen zusammenhang der msdn.
    Also, weiss einer wie man das jetzt richtig macht ?
    Und wie gesagt, ich hab es noch mal versucht zu buffen, aber das hat nicht geklappt, da man das halt deklarieren muss und es nicht Abfragen kann.
    Also bitte ich jettzt irgendjemanden darum.
    Danke schonmal im Vorraus.



  • Was funktioniert denn nicht?
    Erscheint kein Text? Erst gar kein Textfeld? Ändert sich der Text nicht?
    Wie sieht aktuell dein Code-Fragment aus wo du den Text setzt?



  • Mein Problem liegt hier, das er nicht mal compilet !

    #include <windows.h>
    using namespace std;
    LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);        //Handle für's Fenster
    const char szAppName[] = "Html Editor V 1.00";                  //Variable für den Namen des Programmes
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, //Initialisierung
                       PSTR szCmdLine,int iCmdShow)
     {
                       HWND hWnd;                    //Deklaration
                       MSG  msg;
                       WNDCLASS wc;
    
                       wc.lpfnWndProc = WndProc;              
                       wc.hInstance = hInstance;
                       wc.style = CS_HREDRAW | CS_VREDRAW;
                       wc.lpszClassName = szAppName;
                       wc.lpszMenuName = NULL;
                       wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
                       wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
                       wc.hCursor = LoadCursor(NULL,IDC_ARROW);
                       wc.cbClsExtra = 0;
                       wc.cbWndExtra = 0;
    
                       RegisterClass(&wc);          //Wir Initialisieren das Fenster
    
                       hWnd  =  CreateWindow(szAppName,        //Der Befehl CreateWindow wird von der hWnd aus gestartet
                                             "Html Editor",         //Name des Fensters
                                             WS_OVERLAPPEDWINDOW,   //Sollte man generell machen, damit sich das Fenster überlappen lässt
                                             CW_USEDEFAULT,         //Gewöhnliche Koordinaten nehmen
                                             CW_USEDEFAULT,
                                                       1000,       //Breite des Fensters
                                                       800,        // Höhe des Fenster's
                                                       NULL,
                                                       NULL,
                                                       hInstance,
                                                       NULL);
    
                                                       ShowWindow(hWnd, iCmdShow);  //Fenster darstellen 
                                                       UpdateWindow(hWnd);          // Fenster immer neu aufladen
    
                                                       while(GetMessage(&msg,NULL, 0, 0)) //weitere Registrierung des Fenster, ins besondere für die Abfrage
                                                       {
                                                                              TranslateMessage(&msg); //Übersetzt das Programm
                                                                              DispatchMessage(&msg);
                                                                                                    }
    
                                                                                                    return msg.wParam;
                                                                                                    }
                                                                                                    LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) // weitere Deklaration
                                                                                                    {
                                                                                                            static HWND hButton; // Die Static für den Button erstellen, in unserem Falle für das Edit-Control
                                                                                                            static HWND hButton_1;
                                                                                                            static HWND hButton_2;
                                                                                                            static HWND hButton_3;
                                                                                                            PAINTSTRUCT ps;
                                                                                                            HDC  hDC;
                                                                                                            switch(message) // Abfrage wird gestartet, alle Message's vom Fenster landen hier zum Schluss
                                                                                                            {
    
                                                                                                                         case WM_CREATE:  // Die Create-Struct, hier werden die Button generated
    
                                                                                                                             {
    
                                                                                                                                          char *buffer = NULL;
                                                                                                                                          buffer = "";
                                                                                                        hButton  =  CreateWindow(  "edit",
                                                                                                                                       buffer,
    
                                                                                      WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_LOWERCASE,
                                                                                                                            150,150,670,450,
                                                                                                                                       hWnd,
                                                                                                                                        NULL,
                                                                                                          ((LPCREATESTRUCT) lParam) -> hInstance,
                                                                                                                                         NULL);
    
                                                                                                                                       hButton_1  =  CreateWindow(  "button",
                                                                                                                                       "Initialisierung Header",
                                                                                                                                     WS_CHILD | WS_VISIBLE | BS_FLAT ,
                                                                                                                                     842,0,150,20,
                                                                                                                                           hWnd,
                                                                                                                                               NULL,
                                                                                                                ((LPCREATESTRUCT) lParam) -> hInstance,
                                                                                                                                                 NULL);                           
    
                                                                                                                                                    return 0;
                                                                                                                                                  }
    
                                                                                                                                                     case WM_COMMAND:
                                                                                                                                                          {
                                                                                                                                                                     if(lParam ==(LPARAM)hButton_1)
                                                                                                                                                                     {
    
                                                                                                                                                                         MessageBox(NULL,"Header wird eingebunden","Header-Optionen",NULL);
    
                                                                                                                                                                         }
                                                                                                                                                                         return 0;
                                                                                                                                                                         }
    
                                                                                                                                                    case WM_PAINT:
                                                                                                                                        {  hDC = BeginPaint(hWnd,&ps);
                                                                                                                               const char szText1[] = "Html Projekt-Source Code :";
                                                                                                                                 TextOut(hDC, 150, 130, szText1, sizeof(szText1) - 1);
                                                                                                                                             EndPaint(hWnd,&ps);
                                                                                                                                                                 return 0;
                                                                                                                                                           }
    
                                                                                                         case WM_DESTROY: // Destroy = Zerstören, wir sagen dem Programm also das wenn etwas passiert, das Programm eine Message zum CloseWindow läuft
                                                                                                                        {
                                                                                                              PostQuitMessage(0); // Diese NAchricht läuft nach Abfrage zum Schluss und closet das Fenster
                                                                                                                           return 0;
                                                                                                                               }
    
                                                                                                                      }
                                                                                                    return DefWindowProc(hWnd,message,wParam,lParam); // Hier wird das Fenster aufgelöst
                                                                                                        }
    

    Das in der WM_COMMAND abgefragt wird nach dem Button ist mir schon kla 😉
    Trotzdem danke für den Link....

    Könnt mir vlt. einer schwind da so ein kleines Bsp. reinschreiben ?
    Währe super dankabr, und würde ihn nach einwilligung im Abspann des Programmes erwähnen !

    Danke im Vorraus



  • Was soll das sein und was kompiliert nicht? Was sagt der Compiler ⚠



  • Also ich glaub rein vom Aufbau her ist das falsg gewesen was ich versucht habe....
    Den Source Code hab ich jetzt wieder in den Original Zustand geschrieben.
    Sagen wir mal, ich bin Anfänger und weiss jetzt nicht wie so etwas funktioniert.
    Gib mir mal bitte ein Bsp.



  • Bsp.


Anmelden zum Antworten