Eingabefeld
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET 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.
-
Das nächste Problem: Wie kann ich den Wert aus dem Eingabefeld weiter verarbeiten? Ich weiß das es mit GetWindowText funktionieren muss. Ich habe es aber die halbe Nacht versucht es klappt nicht:-(
Hat jemand einen Tipp?
-
Kuck dich mal bei gelegenheit unter Edit Control Reference ein wenig um.
GetWindowText verlangt die Paramter
HWND = Handle des Editfeldes.
LPTSTR = char Puffer mit einer zugewiesenen größe
int = Anzahl der zu kopierenden Karaktere aus dem editfeldchar szBuffer[256]={0}; int iCopyChar = GetWindowText(hWndEdit, szBuffer, 255);
-
Konkret für AmCap
TCHAR s[20]; // Textfeld beschreiben SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM)L"Hello my new World"); // Textfeld auslesen GetWindowText(hEdit, s, 20); SetForegroundWindow(hEdit); ShowWindow(hEdit, SW_SHOW);
-
Danke für die Antworten. Habs jetzt so gemacht:
wchar_t szText2[10] = {' '};
...
static HWND hEdit;
...
case WM_CREATE: // Eingabefeld hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, szStatusClass2, L"22", // <- das ist der Inhalt der Editfelds WS_CHILD | WS_VISIBLE , 1100, 300, 100, 20, hwnd, NULL, GetModuleHandle(NULL), NULL);
...
GetWindowText(hEdit, szText2, sizeof(szText2));
Visual C++ 2010 und aktuelle Bibliotheken
-
@rT!f@Ct schrieb:
Kuck dich mal bei gelegenheit unter Edit Control Reference ein wenig um.
...
btw:
datatom schrieb:
wchar_t szText2[10] = {' '};
Warum so?
{' '}
ist keinwchar_t
...vgl. Unicode
-
GetWindowText erwartet als dritten Parameter die Anzahl der Zeichen (ob jetzt char oder wchar_t ist nebensächlich). Daher ist der Code gerade bei so einer geringen Buffergröße sehr mutig:
GetWindowTextW(hEdit, szText2, sizeof(szText2)/sizeof(wchar_t);
Bzw. die TCHAR-Fassung
TCHAR szText2 = {}; // warum eigentlich alles nullsetzen, GetWindowText schreibt schon den Nullterminator GetWindowText(hEdit, szText2, sizeof(szText2)/sizeof(TCHAR);
-
TCHAR szText2[10] = {};
Ehm, so natürlich...
-
Thorgrim schrieb:
[...]
Warum nicht gleich
sizeof(szText2) / sizeof(szText2[0])
?
-
Swordfish schrieb:
Thorgrim schrieb:
[...]
Warum nicht gleich
sizeof(szText2) / sizeof(szText2[0])
?Klar, so ist es natürlich besser. Ich wollte auch eigentlich nur auf den Fehler hinweisen.
-
Scdhaut Euch mal _countof in der MS-CRT an.
Ich habe mir aus dem Template ein eigenes gebaut und verwende dies...