Thread mit MFC



  • Hi Leute,

    noch ne Frage zu Threads. Ich rufe den Thread so auf:

    AfxBeginThread(ThreadProc, hwnd, THREAD_PRIORITY_NORMAL);

    und das ist die Funktion dazu:

    UINT ThreadProc(LPVOID param)
    {
    TCHAR szText[] = _T( "Text" );
    ::SendMessage((HWND)param, WM_SETTEXT, (WPARAM)0,(LPARAM) szText );
    test->edit(szText);

    return 0;
    }

    Nun möchte ich aber nicht nur einen Handle übergeben, sondern mehrere. Wie kann ich die Funktion erweitern um weitere Handles übegeben zu können?

    Danke schon mal im voraus.

    Grüße
    xthing



  • Leg einfach nen kleine Struct an... die füllst du mit den Werten ... und in der Func nimmst du die wieder raus 🙂



  • hi, danke für die Antwort.

    Structur anlegen ist ok, aber iwe baue ich die in den Funktionaufruf ein und und wie in die Furnktionimplemetierung?

    Danke noch mal.

    Grüsse
    xthing



  • // Struktur definieren
    struct THREAD_PARAMETER {
        HWND hWnd;
        unsigned int nID;
    };
    
    // In deiner Funktion eine Variable anlegen von deiner Struktur.
    THREAD_PARAMETER param;
    param.hWnd = hwnd;
    param.nID = 10;
    
    // Thread starten...
    AfxBeginThread(ThreadProc, (LPVOID)&param, THREAD_PRIORITY_NORMAL); 
    
    // Threadfunktion
    UINT ThreadProc(LPVOID param) 
    { 
        THREAD_PARAMETER* pParam = reinterpret_cast<THREAD_PARAMETER*>(param);
    
        if (!param)
            return 1;
    
        TCHAR szText[] = _T("Text"); 
        ::SendMessage(pParam->hWnd, WM_SETTEXT, (WPARAM)0, (LPARAM)szText); 
    
        return 0; 
    }
    

    So in etwa...


Anmelden zum Antworten