Datei laden läuft nur mit Edit



  • Hallo,

    ich habe hier eine Funktion "LoadText". Wenn ich diese für ein Edit-Control verwende, läuft alles wunderbar, sobald ich aber versuche, diese Funktion für ein ListBox-Control oder RichEdit-Control zu benutzen, wird der jeweilige Text nicht angezeigt.

    Hier folgt ein Quellcodeausschnitt:

    BOOL LoadText(HWND Handle, LPCTSTR pszFileName) {
    	HANDLE hFile;
    	BOOL bSuccess = FALSE;
    
    	hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
    		OPEN_EXISTING, 0, NULL);
    
    	if (hFile != INVALID_HANDLE_VALUE) {
    		DWORD dwFileSize;
    
    		dwFileSize = GetFileSize(hFile, NULL);
    		if (dwFileSize != 0xFFFFFFFF) {
    			LPSTR pszFileText;
    
    			pszFileText = (char*)GlobalAlloc(GPTR, dwFileSize + 1);
    			if (pszFileText != NULL) {
    				DWORD dwRead;
    				if (ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL)) {
    					pszFileText[dwFileSize] = '\0';
    					if (SetWindowText(Handle, pszFileText))
    						bSuccess = TRUE;
    				}
    				GlobalFree(pszFileText);
    			}
    		}
    		CloseHandle(hFile);
    	}
    	return bSuccess;
    }
    

    Was muss ich ändern, damit ich diese Funktion für ein Edit-Control, ListBox-Control, RichEdit-Control usw. nutzen kann?



  • Bei einer Listbox funktioniert SetWindowText nicht. Du merkst nun, dass Code aus dem Internet kopieren dich noch nicht zu einem Programmierer macht. 😃 Mach dich doch mal schlau, wie man bei einer Listbox einen String als neues Element der Liste hinzufügt (Hilfe per F1 oder msdn.com), probiere es außerhalb der Funktion auch mal aus, und dann kannst du die Funktion ganz locker so umschreiben, dass sie mit einer Listbox funktioniert.


Anmelden zum Antworten