Text aus einer Textdatei in einer Textbox



  • Hallo ich habe ein Problem.

    Ich habe mir viele Videos dazu angeguckt und in, gefühlt, 10000 Foren nachgeguckt aber ich habe nichts gefunden! Wie kriegt man es hin, das der Text aus einer Textdatei in einer Textbox ausgegeben wird?

    Hier der Quelltext:

    #include <tchar.h>
    #include <windows.h>
    #include <cstdlib>
    #define ID_BUTTON 1
    #include <fstream>
    #include <string>
    #include <fstream>
    #include <cstdlib>
    #include <winnt.h>
    #include <cstdio>
    #define COLOR_BACKGROUND 1
    #define COLOR_WINDOWTEXT 9
    
    using namespace std;
    /* This is where all the input to the window goes to */
    LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
    	switch(Message) {
    
    		/*
    		HWND:
    
    		Das ist der grafische Teil meines Programmes
    		1. Der "Wörter hinzufüge" Button
    		2. Das Textfeld zur Eingabe von neuen Wörtern
    		3. Die meldung nachdem auf dem Button geklickt wurde
    		*/
    
    		/*1. ================================================================================1. */
    		case WM_CREATE:{
    		//WND-Proc
    
    static HANDLE hBitmap;
    static HWND hButton;
    
    // Bitmap laden aus Datei. Mit GetModuleHandle (NULL) wird die HINSTANCE geholt.
    
       hBitmap= LoadImage (GetModuleHandle (NULL), "Wörter hinzufüge-button (2).bmp",
          IMAGE_BITMAP,0, 0,LR_DEFAULTCOLOR | LR_LOADFROMFILE);
    
    // Jetzt wird ein Button erzeugt. hwnd ist das Handle zum Hauptfenster. 
    
       hButton = CreateWindow("BUTTON", "", WS_VISIBLE|WS_CHILD|BS_FLAT|BS_BITMAP, 
                              146, 530, 275, 45, 
    						  hwnd, (HMENU) ID_BUTTON, NULL, NULL);
    
    //Das Bitmap auf den Button plazieren
    
       SendMessage (hButton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP,(LPARAM)(HANDLE) hBitmap);
    		  CreateWindow(TEXT("button"), TEXT(""),
    			     WS_VISIBLE | WS_CHILD,
    			     0, 0, 0, 0,
    			     hwnd, (HMENU) 1, NULL, NULL);
    
    		/*2. ================================================================================2. */	     
    
    	char szClassName[  ] = "TextEntry";
    	HWND  TextBox;
    			TextBox = CreateWindow("EDIT",
    			                      "#Vergiss nicht wie du neue Wörter hinzufügen sollst sollst: \r\n#Hochdeutsch = Plattdeutsch",
    			                      WS_BORDER | WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | ES_MULTILINE | WS_TABSTOP,
    								  20, 20, 400, 500,
    								  hwnd, (HMENU) 2, NULL, NULL);
    								  break;
    	    /*3. ================================================================================3.*/
    
    	}
    	case WM_COMMAND:{
    
    			if(LOWORD(wParam) == ID_BUTTON){
    				MessageBox(hwnd, "Die Wörter wurden gespeichert! Bitte schicke sie demnächst an: v.s-1@t-online.de", "Wörter hinzugefügt", MB_ICONINFORMATION | MB_APPLMODAL | MB_SETFOREGROUND);
    			}
    
    			break;
    
    		}
    
    		/* Upon destruction, tell the main thread to stop */
    		case WM_DESTROY: {
    			PostQuitMessage(0);
    			break;
    		}
    
    		/* All other messages (a lot of them) are processed using default procedures */
    		default:
    			return DefWindowProc(hwnd, Message, wParam, lParam);
    	}
    	return 0;
    }
    
    /* The 'main' function of Win32 GUI programs: this is where execution starts */
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    
    	WNDCLASSEX wc; /* A properties struct of our window */
    	HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
    	MSG msg; /* A temporary location for all messages */
    
    	/* zero out the struct and set the stuff we want to modify */
    	memset(&wc,0,sizeof(wc));
    	wc.cbSize		 = sizeof(WNDCLASSEX);
    	wc.lpfnWndProc	 = WndProc; /* This is where we will send messages to */
    	wc.hInstance	 = hInstance;
    	wc.hCursor		 = LoadCursor(NULL, IDC_IBEAM);
    
    	/* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
    	/*
      Colors:
    	  9 hellBlau
    	  20 Sand gelb
    	  21 Schwarz
    	  22 Blau
    	  23 Grau-blau
    	  26 Creme
    	  16 weiß
    	  13 braun-grau
    	  */
    
    	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+23);
    	wc.lpszClassName = "WindowClass";
    	wc.hIcon		 = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
    	wc.hIconSm		 = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */
    
    	if(!RegisterClassEx(&wc)) {
    		MessageBox(NULL, "Window Registration fehlgeschlgaen!","Error!",MB_ICONEXCLAMATION|MB_OK);
    		return 0;
    	}
    
    	hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Opas Wörterbuch",WS_VISIBLE|WS_OVERLAPPEDWINDOW|WS_MAXIMIZE,
    		CW_USEDEFAULT, /* x */
    		CW_USEDEFAULT, /* y */
    		WS_MAXIMIZE, /* width */
    		WS_MAXIMIZE, /* height */
    		NULL,NULL,hInstance,NULL);
    
    	if(hwnd == NULL) {
    		MessageBox(NULL, "Programm konnte nicht getartet werden","Error!",MB_ICONEXCLAMATION|MB_OK);
    		return 0;
    	}
    
    	/*
    		This is the heart of our program where all input is processed and 
    		sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
    		this loop will not produce unreasonably high CPU usage*/
    
    	while(GetMessage(&msg, NULL, 0, 0) > 0) { /* If no error is received... */
    		TranslateMessage(&msg); /* Translate key codes to chars if present */
    		DispatchMessage(&msg); /* Send it to WndProc */
    	}
    	return msg.wParam;
    }
    

    Wäre nett wenn mir jemand helfen könnte.

    Danke im Voraus
    Aaron 😃



  • Dieser Thread wurde von Moderator/in Arcoth aus dem Forum C++ (alle ISO-Standards) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Zu viel Code. Was genau ist das Problem und was willst du? Ich seh, du erstellst im Code ein "edit" Control. Den Text kriegst du mit einer WM_GETTEXT Nachricht, setzen kannst du ihn mit WM_SETTEXT. War das die Frage?



  • Also vergessen wir den Code und alles andere.

    Ich formuliere meine Frage nochmal anders:
    Ich habe eine Textdatei. In der steht z.B.:blablabla
    Tralalalalabxj

    Nun möchte ich eine Textbox erstellen, die diese Textdatei ausliest und den Text anzeigt. Wenn ich dann in meine Textdatei noch eine Zeile einfüge z.B.: jdjdjsxk

    Und dann meine Anwendung neu öffne, soll in der Textbox nun auch die neu hinzugefügte Zeile stehen.

    Ich hoffe die Frage ist nun verständlicher

    Lg
    Aaron:)



  • 1. Datei öffnen (CreateFile())
    2. Dateigröße herausfinden (GetFileSize())
    3. Speicher reservieren (LocalAlloc())
    4. Dateiinhalt in reservierten Speicher kopieren (ReadFile())
    5. Speicher ins Fenster kopieren (SetWindowText())
    6. Speicher freigeben und Datei schließen (LocalFree()/CloseHandle())



  • Kann wer dazu ein Beispiel machen?

    CreateFile() habe ich folgendermaßen hinbekommen

    HANDLE hfile = CreateFile(
               "temp.txt",                 
               GENERIC_READ | GENERIC_WRITE, 
               FILE_SHARE_READ,
               NULL,
               CREATE_NEW | OPEN_EXISTING | OPEN_ALWAYS,
               FILE_ATTRIBUTE_NORMAL,
               NULL);
    

    aber was GetFileSiz() angeht steh ich ein bischen auf dem Schlauch. 🙂



  • Aaron3219 schrieb:

    [...] was GetFileSiz() angeht steh ich ein bischen auf dem Schlauch. 🙂

    Stell eine Frage die sich auf dein Problem dabei bezieht 🙄



  • Warum muss man die Datei über die WinApi lesen? Kann man nicht einfach die C oder C++ Standardbibliothek verwenden?



  • Warum leckt sich ein Hund ... ne, lassma des 😉



  • Ich will ja nichts sagen aber das hat mir
    auch nicht wirklich weitergeholfen



  • Na, wenn du weiterhin nichts sagst, dann wirst du weiterhin nicht weitergeholfen.

    Aber hey, viel interesse kannst du eh nicht haben,

    Aaron3219 schrieb:

    Also vergessen wir den Code und alles andere.

    denn zu deinem Code gäb' es viel zu sagen.



  • Was soll ich denn sagen



  • sehr hilfreiche post.. *kortzt* 👎 👎



  • Aaron3219 schrieb:

    Was soll ich denn sagen

    Hast Du ein Problem beim Einlesen der Datei?
    Dann benutze nicht die WinAPI (wurde hier schon indirekt vorgeschlagen), sondern die Funktionen bzw. Möglichkeiten der C++ - Standardbibliothek.
    Hast Du ein anderes Problem?
    Dann benenne es, und zwar möglichst konkret!



  • Aaron3219 schrieb:

    Ich habe mir viele Videos dazu angeguckt und in, gefühlt, 10000 Foren nachgeguckt aber ich habe nichts gefunden!

    Das glaube ich nicht. Entweder lügst du oder du bist zu blöd zum suchen.

    Aaron3219 schrieb:

    Ich habe mir viele Videos dazu angeguckt

    Nee wirklich, ich kenn kein einziges Video dazu. Poste mal einen Link damit ich's mir auch mal anschauen kann.

    Ich revidieren meine Annahme zu: Du lügst!

    Hast du sonst im Leben Erfolg mit Lügen oder wolltest du es hier nur mal ausprobieren?



  • http://www.win32developer.com/tutorial/windows/windows_tutorial_3.shtm
    datei öffnen dazu gibts auch jede menge beispiele..........





  • Dieser Beitrag wurde gelöscht!

Anmelden zum Antworten