kurze Frage: Handle aus lParam lesen



  • Moin,

    ich hab gradmal ne kleine Frage und ich hab sonst nix dazu gefunden.
    Meine Funktion:

    void CData::ReadData(HWND hWnd)
    {
    	GetWindowText(hWnd, ID, NULL);
    }
    

    Der Aufruf:

    case EN_KILLFOCUS:
    			{
    			ObjektNeu.ReadData((HWND)lParam);
    			}
    

    bei EN_KILLFOCUS steht in lParam der Handle zu dem Control der die Message geschickt hat. Diesen Handle will ich an die Funktion übergeben aber es wird immer nur irgendwas übergeben was es nicht gibt.

    Weis jemand wie ich den Handle richtig übergebe damit ich aus dem Control den Text bekomme der die Nachricht geschickt hat.

    viel spaß
    - Dergel



  • woraus schliesst du, dass "irgendwas" übergeben wird? So wie ich das sehe sollte der cast eigentlich funktionieren. Was mich nur ein wenig stutzig gemacht hat ist:

    GetWindowText(hWnd, ID, NULL);
    

    Der Parameter ID muss vom Typ LPSTR sein, während NULL die Angabe der Größe dieses Puffers ist. Klar ist dein gepostetes Beispiel vereinfacht, und die Namen wohl frei gewählt, aber passt das denn im Orginal?



  • Beim Debuggen steht in hwnd immer nur irgendeine große Zahl die noch nicht bekannt ist, also ein unbekannter Window Handle.

    ID ist LPSTR und momentan nur zum Test, wird später noch ein eigener Parameter eingefügt.

    Null ist tatsächlich falsch... ich Idiot hab mich nur malwieder verlesen...
    Also gut funtioniert, danke.

    - Dergel


Anmelden zum Antworten