[VC++] Wert aus Editfeld über Menu auslesen

marcosan

Mitglied
Hallo Community

Ich hoffe, jemand kann mir weiterhelfen, ich seh entweder meinen Fehler nicht, oder hab sonst etwas Falsch gemacht...

Entwicklungsumgebung: MS eMbedded Visual C++ auf Windows XP
Software läuft auf: Windows CE 5.0

Das Programm besteht aus einer Listbox und einem Editfeld sowie einem Menu.
In die Listbox werden Zahlenwerte eingelesen. Im Editfeld soll nun der Anwender eine Zahl eingeben können. Der Befehl dazu findet man im Menu. Wählt man im Menu "Suchen" aus, soll das Programm die Zahl aus dem Editfeld nehmen und den Wert, sofern er existiert, in der Listbox als Auswahl markieren.

Variablen:
Code:
TCHAR* g_EditFeld=NULL;
char* g_EditFeld2=NULL;

Hier den Codeausschnitt wie ich die einzelnen Felder erstellt habe.
Code:
case WM_CREATE:
			g_hwndCB = CommandBar_Create(g_hInst, hWnd, 1);			
			CommandBar_InsertMenubar(g_hwndCB, g_hInst, IDM_MENU, 0);
			CommandBar_AddAdornments(g_hwndCB, 0, 0);

			HEdit = CreateWindow(_T("EDIT"), _T(""), 
                 WS_VISIBLE|WS_CHILD|WS_BORDER,
                 10, 180, 210, 20, 
                 hWnd, (HMENU)ID_MYCONTROL2, g_hInst, 0);

			HList = CreateWindow(_T("listbox"), NULL,		
                 WS_HSCROLL|WS_VISIBLE|WS_CHILD|WS_BORDER,
                 10, 50, 210, 120, 
                 hWnd, (HMENU)ID_MYCONTROL, g_hInst, 0);

Hier den Codeausschnitt wie ich bisher versucht habe, dem Programm den Wert aus dem Editfeld zu bekommen und weiter zu verwenden.
Code:
case WM_COMMAND:
			wmId    = LOWORD(wParam); 
			wmEvent = HIWORD(wParam);
			switch (wmId)
			{
case IDM_SCANNER_SUCHE:	
SuchErgebnis = SendMessage(HEdit, EM_GETLINE, 0, *g_EditFeld);
WideCharToMultiByte( CP_ACP, 0, g_EditFeld, -1,g_DummyText, 256, NULL, NULL ); 
SendMessage(HList,LB_INSERTSTRING,0,(LPARAM)g_DummyText2);
Der Code oben sollte mir eigentlich nur den Wert auslesen und für mich als bestätigung, das er engelesen wurde, nochmals in die Lostbox schreiben.
Eigentlich dachte ich, das ich über EM_GETLINE den Wert aus dem Editfeld bekommen könnte und ihn dann weiterzuverwenden. z.B. um mit LB_FINDSTRING nach dem Wert in der Listbox zu suchen.

Bin über jeden Tipp oder Codeschnippsel Dankbar welches mich weiterbringt.
 
Bei Verwendung von SendMessage und EM_GETLINE solltest du den Speicherplatz für den String schon reservieren, also statt
Code:
char* g_EditFeld2=NULL;
sowas
Code:
char g_EditFeld2[255];
schreiben.

Gruß
MCoder
 
Zurück