EDITTEXT auslesen
-
Hi Leute,
tut mir Leid für euch ist das jetzt wahrscheinlich eine Anfängerfrage, aber ich krieg es einfach nicht hin, den Text aus einem EDITTEXT-Feld einer Dialogbox auszulesen.
Hiernach:
http://msdn.microsoft.com/en-us/library/ms645489(VS.85).aspx
Hab ich mich auch erstmal gerichtet, aber wenn ich das dann ausgeben will in einer MessageBox steht da nichts:INT_PTR CALLBACK WordInput(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return (INT_PTR)TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return (INT_PTR)TRUE; } else if(LOWORD(wParam) == IDOK) { //wordinput ist global! GetDlgItemText(hDlg, IDC_EDIT, wordinput, 100); bGotText = true; EndDialog(hDlg, LOWORD(wParam)); MessageBox(hWNd, wordinput, _T("Ihr Text:"), MB_OK); } break; }
Hier steht im Textfeld einfach nichts.
Könnt ihr mir helfen, ich hab hier bisher nur alte Varianten gefunden, die mit VisualC++ 2008 irgendwie nicht mehr funktionierenmfG TheCrip
-
Zeig mal die Deklaration von wordinput. Was sagt die Rückgabe von GetDlgItemText?
-
UINT GetDlgItemText( HWND hDlg, int nIDDlgItem, LPTSTR lpString, int nMaxCount );
( http://msdn.microsoft.com/en-us/library/ms645489(VS.85).aspx )
Globale Vriable wordinput:
LPTSTR wordinput;
-
TheCrip schrieb:
Globale Vriable wordinput:
LPTSTR wordinput;
LPTSTR bedeutet einen Zeiger der in deinen fall ins nirvana zeigt, also wenn du was zurück haben willst mußt du schon mal Speicher reservieren und der zeiger auf den speicher in deine Variable schreiben.
pString
[out] Pointer to the buffer to receive the title or text.
-
Welchen Typ soll der reservierte Speicher haben? TCHAR?
-
TheCrip schrieb:
Welchen Typ soll der reservierte Speicher haben? TCHAR?
Zum Beispiel, ja. Probier einfach mal sowas wie
TCHAR wordinput[1024];
-
Danke vielen Dank, jetzt klappts!