Variablenübergabe zwischen Fenstern



  • Halli hallo.

    Ich wollte mal allgemein in die Runde fragen, wie ihr spezielle Variablen zwischen euren Fensterprocedures übergebt.

    Setzt ihr sie grundlegend global (was mit absolut nicht gefällt) oder gibts da gar die simpelsten Lösungen und ich kenn sie nur nicht?

    Klar, kann man via wParam und lParam einfache Zahlen und auch einzelne Chars übergeben. Wie sieht es aber mit einem Char-Array bzw. einem String aus?

    Bools lassen sich ja mit einem Trick durch die Konvertierung zur Zahl 1 bzw. 0 umwandeln.

    Jedoch sind es pro Message nur maximal 3 Variablenwerte (wParam + HIWORD lParam + LOWORD lPAram = 3).

    Problematisch wirds dann eben bei mehreren.

    Gruß, paSe



  • #define UWM_STRING  (WM_APP+100)
    

    Sender:

    Cstring *pstr = new CString( _T("Irgend ein string") );
    
    if( !target->PostMessage( UWM_STRING, (WPARAM) pstr, (LPARAM)(0) ) )
    {
    	delete pstr;
    }
    

    Empfänger:

    ON_MESSAGE(UWM_STRING, OnString)
    
    LRESULT CReceiver::OnString(WPARAM wParam, LPARAM)
    {
    	CString *pstr = (CString *) wParam;
    	// mach' was mit pstr
    	delete pstr;
    	return( 0 );
    }
    

Anmelden zum Antworten