Progressbar zu früh gefüllt



  • moin meisters ...

    #define lMax 10000000
    SendMessage(hProgress, PBM_SETRANGE, 0, MAKELONG(0, lMax));
    ...
    
    if( LOWORD(wParam) == IDC_BTN_START )
    {	
        for(long l=0; l<lMax && !IsCanceled(IDC_BTN_STOP, hDlg); l++)
        {
            SendMessage(hProgress, PBM_SETPOS, l, 0);
        }
        EndDialog(hDlg, LOWORD(IDOK));
        return TRUE;
    }
    

    Problem: Die Progressbar ist bis zum Ende gefüllt, jedoch ist die Schleife
    noch nicht beendet.

    Was nun ?

    Besten Dank im Voraus
    mfg
    RB

    edit: Bitte aussagekräftige Titel verwenden: Wie man Fragen richtig stellt



  • lMax passt nicht in ein Word. Deswegen wird auf 16 Bit verkürzt und das Maximum auf 38528 festgelegt. Damit das funktioniert, mußt Du PBM_SETRANGE32 verwenden:

    SendMessage(hProgress, PBM_SETRANGE32, 0, (LPARAM)lMax);
    


  • moin meister,

    ah, Danke! 🤡


Anmelden zum Antworten