Der Text aus einem EditFenster



  • Hi,
    ich habe ein Edit-Fenster und einen Button "Suchen". Wenn der User auf den Button suchen drückt soll der inhalt von dem Edit-Fenster in ein
    static TCHAR szText[100];
    geschrieben werden und dann in einer MessageBox ausgegeben werden.
    Ich habe schon ein paar ansätze aber ich bekomme es nicht hin.
    Es geht darum, wie man den Text aus dem Editfenster in szText schreibt und dann in einer MessageBox ausgibt, das mit dem Button geht schon.

    MFG!





  • Thx, kannst du mir erklären was ich bei int nIDDlgItem,
    eingeben muss?



  • Die ID deines Dialogs, welche du beim Erstellen verwendet hast.



  • Ich bekomme es immernoch nicht hin 😕

    //Das Editfenster
    button[0] = CreateWindow(TEXT("edit"), TEXT("Editfenster"), 
    				WS_CHILD | WS_VISIBLE, 10, 10, 470, 20, hwnd, NULL, 
    				((LPCREATESTRUCT) lParam) -> hInstance, NULL);
    
    //der buffer
    
    static TCHAR buf[100];
    
    //Einlesen von dem Editfenster
    
    GetDlgItemText(button[0], NULL, buf, 100);
    

    SO ist der Code aber es geht nicht..?! Ich glaube das liegt an dem
    __in int nIDDlgItem...
    Kannst du mir sagen wie ich es richtig machen muss=?



  • Vielleicht funktioniert ich benutze die WinApi gdi garnicht.

    CreateWindow(TEXT("edit"), TEXT("Editfenster"), 
                    WS_CHILD | WS_VISIBLE, 10, 10, 470, 20, hwnd, (HMENU) 15001, 
                    ((LPCREATESTRUCT) lParam) -> hInstance, NULL);
    
    GetDlgItemText(button[0], 15001, buf, 100);
    


  • Nein so geht es auch nicht "buf" bekommt nicht den Inhalt von der Editbox..



  • Dann nimm das: http://msdn.microsoft.com/en-us/library/ms633520
    Das andere war für CreateDialog. Es muss jetzt gehen ^^.

    Irren ist männlich 😃



  • Damit bekomme ich es auch nicht hin oO Ich will es in buf einlesen und der string bleibt dann aber leer:

    GetWindowText(button[0], buf, 100);
    

    SO zhab ichs aber es geht nicht 😞



  • #include <windows.h>
    
    #define MAX_BUFSIZE 100u
    
    typedef struct{
    	HWND childButton;
    	HWND childEdit;
    	TCHAR buffer[MAX_BUFSIZE];
    }GlobalData;
    
    GlobalData* ParentWnd;
    
    LRESULT CALLBACK MessageHandler(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam){
    	switch(iMsg){
    		case WM_COMMAND: /* <== !!? (1) */
    			if((HWND) lParam == ParentWnd->childButton && HIWORD(wParam) == BN_CLICKED){
    				ZeroMemory(ParentWnd->buffer, sizeof(TCHAR) * MAX_BUFSIZE);
    				GetWindowText(ParentWnd->childEdit, ParentWnd->buffer, MAX_BUFSIZE); /* <== !!? (2) */
    				MessageBox(NULL, ParentWnd->buffer, TEXT("Nachricht"), MB_OK);
    			}
    			break;
    		case WM_DESTROY:
    			PostQuitMessage(0);
    			return 0;
    		default:
    			break;
    	}
    	return DefWindowProc(hWnd, iMsg, wParam, lParam);		
    }
    
    int WINAPI WinMain(HINSTANCE hInst, HINSTANCE phInst, LPSTR commLine, int showStyle){
    	HWND hParent;
    	MSG msg;
    	WNDCLASSEX mWndClass;
    	SIZE Screen = {GetSystemMetrics(SM_CXMAXIMIZED) >> 1, GetSystemMetrics(SM_CYMAXIMIZED) >> 1};
    
    	if(!(ParentWnd = HeapAlloc(GetProcessHeap(), 0, sizeof(GlobalData))))
    		return 0;
    
    	ZeroMemory(&mWndClass, sizeof(WNDCLASSEX));
    	mWndClass.hInstance = hInst;
    	mWndClass.lpfnWndProc = MessageHandler;
    	mWndClass.lpszClassName = TEXT("M");
    	mWndClass.cbSize = sizeof(WNDCLASSEX);
    	mWndClass.hbrBackground = (HBRUSH) GetStockObject(GRAY_BRUSH);
    	mWndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    
    	if(!RegisterClassEx(&mWndClass))
    		return 0;
    
    	if(!(hParent = CreateWindowEx(0, TEXT("M"), TEXT("Text eingeben"),
    							   WS_SYSMENU|WS_VISIBLE|WS_CAPTION,
    							   0, 0,
    							   Screen.cx, Screen.cy,
    							   NULL, NULL, hInst, NULL)))
    		   return 0;
    	ParentWnd->childButton = CreateWindowEx(0, TEXT("button"), TEXT("OK"),
    								WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_CENTER|BS_VCENTER,
    								3 * (Screen.cx >> 3), Screen.cy >> 1,
    								Screen.cx >> 2, Screen.cy >> 3,
    								hParent, (HMENU)1, hInst, NULL);
    	ParentWnd->childEdit = CreateWindowEx(0, TEXT("edit"), TEXT("eingabe hier"),
    								WS_CHILD|WS_VISIBLE|WS_BORDER|ES_CENTER,
    								3 * (Screen.cx >> 3), 7 * (Screen.cy >> 4),
    								Screen.cx >> 2, Screen.cy >> 4,
    								hParent, (HMENU)2, hInst, NULL);
    
    	if(!ParentWnd->childEdit){
    		if(ParentWnd->childButton)
    			DestroyWindow(ParentWnd->childButton);
    		DestroyWindow(hParent);
    		return 0;
    	}
    
    	while(GetMessage(&msg, NULL, 0, 0) > 0){
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    
    	return HeapFree(GetProcessHeap(), 0, ParentWnd) && msg.wParam;
    
    }
    

    😕


Log in to reply