Warum funzt der SendMessage Befehl nicht??



  • Hallo @all ^^
    Ich hab hier das Handle von einer Editbox in MFC und möchte jetzt an diese einen String senden, aber das geht irgendwie nicht 😞
    Hab bis jetzt das hier vollbracht, aber warum funzt das nicht???:

    CString Text;
    	CWnd *pMyWnd = GetDlgItem(IDC_TEXT); 
    	Text = "Hallo";
    	SendMessage(*pMyWnd, WM_SETTEXT, 0, Text);
    

    Beim Compilieren kommt aber nun immer folgender Fehler:
    XXXXXXDlg.cpp(186) : error C2660: 'SendMessageA' : Funktion akzeptiert keine 4 Parameter

    HILFEEEEEEE 😃



  • Da du ja die MFC nutzt kannst du dies auch wie folgt realisieren.

    CEdit* pEdit = (CEdit*) GetDlgItem(IDC_EDIT1);	
    pEdit->SetWindowText("Hallo Welt");
    


  • Du versuchst an der Stelle die Memberfunktion deines Dialogfensters aufzurufen - und die würde vermutlich nicht das machen, was du vorhast.

    Ansonsten bleiben dir noch die globale SendMessage (die akzeptiert 4 Parameter) oder die Member-Funktion deines Zielobjekts:

    //a:
    ::SendMessage(pMyWnd->m_hWnd,WM_SETTEXT,0,text);
    
    //b:
    pMyWnd->SendMessage(WM_SETTEXT,0,text);
    

    (PS: Du hast kein Handle, sondern ein CWnd-Objekt ;))


Anmelden zum Antworten