GetDlgItemText gibt keinen Text zurück?
-
Hey,
ich habe ein kleines Problem.
Und zwar möchte ich den vom Benutzer in ein Edit-Control eingegebenen Text auslesen und in einer Nachrichten-Box anzeigen. Ich habe nach langem rumprobieren und Googeln folgendes gefunden:LPTSTR text; GetDlgItemText(hwnd, GetDlgItem(hwnd, ID_EDIT), &text, 100000); MessageBox(hwnd, TEXT(text), "Titel", MB_OK);Leider steht in der erscheinenden MessageBox nichts.
Woran liegt das und wie kann ich es lösen?
Danke schon mal.MfG,
-haiyyu_
-
Du musst auch Speicher reservieren, in den der Text kopiert werden soll. Du hast bislang nur einen Pointer angelegt. Außerdem musst du nicht auch noch GetDlgItem verwenden. Ich frage mich, wo du das gefunden hast...
Probiers mal so:
TCHAR str[256]; GetDlgItemText(hwnd,ID_EDIT,str,256);
-
jop ohne reservierten speicher geht da nix

-
Hey,
danke für die Antwort.
Habe jetzt verschiedene Dinge probiert... Leider will nichts funktionieren (gleiches Ergebnis). In meinem Buch finde ich auch nichts darüber (was mich eigentlich wundert, wahrscheinlich suche ich falsch :D)...MfG,
-haiyyu_
-
Danke, das funktioniert.

-
@ hay.. du musst ja an nem groooßen project arbeiten bei all deinen fragen xD
-
Hey,
ich weiß nicht ob du einen Texteditor als großes Projekt zählst
Naja, ich werd immer besser
Habe zu meinem zwölften Geburtstag (im Februar dieses Jahres) ein C++-Buch geschenkt bekommen, beherrsche schon VB, jetzt habe ich mit C++ angefangen.MfG,
-haiyyu
-
haiyyu_ schrieb:
ich weiß nicht ob du einen Texteditor als großes Projekt zählst

Kommt drauf an, ob du eher ein Notepad oder ein Notepad++ programmierst.

-
Hey,
ein Notepad ^^
Noch eine kleine Frage...
Ich versuche einen OpenFileDiaolg anzuzeigen, in meinem vorigen Projekt hat das mit demselben (denke ich zumindest) Code funktioniert, nur hier wird der Dialog nicht angezeigt.OPENFILENAME ofn; char szFile[260]; ZeroMemory(&ofn, sizeof(OPENFILENAME)); ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; ofn.lpstrTitle = "Speichern..."; ofn.nMaxFile = sizeof(szFile); ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = NULL; if (GetOpenFileName(&ofn)) {}MfG,
-haiyyu_
-
Im Fehlerfall mal CommDlgExtendedError ausführen.
-
mach das in zeile 2
char szFileName[255]={0};
-
Danke, das funktioniert.
-
Hey,
ich suche jetzt schon eine Weile nach einem SaveFileDialog... Den OpenFileDialog (OPENFILENAME) gibt es ja schon... Leider finde ich nichts für's Speichern...MfG,
-haiyyu
-
haiyyu_ schrieb:
Hey,
ich suche jetzt schon eine Weile nach einem SaveFileDialog... Den OpenFileDialog (OPENFILENAME) gibt es ja schon... Leider finde ich nichts für's Speichern...MfG,
-haiyyuDa kannst du doch den gleichen nehmen. Was du letztlich mit der Datei anstellst, ist schließlich deine Sache.
EDIT: Oder irre ich mich gerade? Guck mal nach GetSaveFileName...

-
BOOL SaveText(HWND hwwnd, LPCTSTR pszFileName) { HANDLE hFile; BOOL bSuccess = FALSE; hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile != INVALID_HANDLE_VALUE) { DWORD dwTextLength; dwTextLength = GetWindowTextLength(GetDlgItem(hwwnd, 8000)); if (dwTextLength > 0) { LPSTR pszText; DWORD dwBufferSize = dwTextLength + 1; pszText = (char *) GlobalAlloc(GPTR, dwBufferSize); if (pszText != NULL) { if (GetWindowText(GetDlgItem(hwwnd, 8000), pszText, dwBufferSize)) { DWORD dwWritten; if (WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL )) bSuccess = TRUE; } GlobalFree(pszText); } } CloseHandle(hFile); } return bSuccess; } string SaveFileBox(HWND hwnd) { OPENFILENAME ofn; char szFileName[MAX_PATH] = ""; ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFilter = "HTML Datei (*.html)\0*.html\0" "Alle Dateien (*.*)\0*.*\0"; ofn.lpstrFile = szFileName; ofn.nMaxFile = MAX_PATH; ofn.lpstrDefExt = "html"; ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; if (GetSaveFileName(&ofn)) { return szFileName; } return ""; }wenn des gebrauchen kannst
-
Hey,
danke, das funktioniert.
Hatte auch schon GetSaveFileName und SAVEFILENAME, jedoch meckerte der Compiler beim SAVEFILENAME, deshalb dachte ich, dass GetSaveFileName auch nicht funktionieren wird ^^MfG,
-haiyyu
-
haiyyu_ schrieb:
Hey,
danke, das funktioniert.
Hatte auch schon GetSaveFileName und SAVEFILENAME, jedoch meckerte der Compiler beim SAVEFILENAME, deshalb dachte ich, dass GetSaveFileName auch nicht funktionieren wird ^^MfG,
-haiyyuHehe, das meinte ich. Die Struktur is die gleiche (SAVEFILENAME gibts natürlich nicht), nicht der Dialog...
