GetScrollInfo liefert falsche Werte?



  • Hi,
    Ich habe ein kleines Problem mit GetScrollInfo. Ich habe ein ListView im ReportStyle und reagiere halt auf WM_VSCROLL

    case WM_VSCROLL:
    		sInfo.cbSize = sizeof(SCROLLINFO);
    		sInfo.fMask = SIF_ALL;
    		if( !GetScrollInfo( hwnd, SB_VERT, &sInfo) )
    			ErrorMSG();
    
    		if( sInfo.nMax != 0 ) {
    			if( ((float)sInfo.nPos / (float)sInfo.nMax) > 0.7 ) {
    }
    }
    

    Das Fenster mit der ListView ist beim Start etwa 400 x 500 groß. Das LietView wird automatisch dem Parent angepasst mittels

    case WM_SIZE:
    		MoveWindow( hwndList, 5, 5, LOWORD(lP) - 10, HIWORD(lP) - 10, true);
    

    Es funktioniert alles wunderbar nur wenn ich das Fenster auf ca. maximal größe vergrößere (es muss nicht ganz der Bildschirm sein reicht schon 3/4) dann liefert mir GetScrollInfo falsche Werte:
    nMin = 0
    nMax = 98 oder so und
    nPos = 34 oder so obwohl der Balken ganz unten angekommen ist.

    Wenn ich das Fenster wieder kleiner ziehe dann geht es wieder und wenn der Balken ganz unten ist dann ist nPos auch gleich nMax.

    Wo liegt mein Fehler?

    MfG schirrmie



  • liefert nPos nicht die Scrollposition an sich?
    Wenn natürlich der sichtbare Bildschirmausschnitt 34 bis 98 geht, dann ist die Scrollposition auch 34



  • Ich denk nPos liefert die Position von dem Scrollbalken oder etwa nicht?
    Wie gesagt wenn der Scrollbalken ganz unten ist dann bekomm ich trotzdem nur 34 von 98 (nMax) was mich stutzig macht. Wenn ich es nicht vergrößer dann gehts ja auch 😕


Anmelden zum Antworten