SIF_...



  • Hi Leute

    LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
         static int  cxChar, cxCaps, cyChar, cxClient, cyClient, iMaxWidth ;
         HDC         hdc ;
         int         i, x, y, iVertPos, iHorzPos, iPaintBeg, iPaintEnd ;
         PAINTSTRUCT ps ;
         SCROLLINFO  si ;
         TCHAR       szBuffer[10] ;
         TEXTMETRIC  tm ;
         ...
    case WM_SIZE:
         cxClient = LOWORD (lParam) ;
         cyClient = HIWORD (lParam) ;
         // Bereich und Seitengröße der vertikalen Bildlaufleiste
         si.cbSize = sizeof (si) ;
         si.fMask  = SIF_RANGE | SIF_PAGE | SIF_PAGE | SIF_TRACKPOS ;
         si.nMin   = 0 ;
         si.nMax   = NUMLINES - 1 ;
         si.nPage  = cyClient / cyChar ;
         SetScrollInfo (hwnd, SB_VERT, &si, TRUE) ;
    .....
    

    Kann mir jmd sagen für was diese SIF_RANGE, SIF_PAGE, SIF_PAGE und SIF_TRACKPOS stehen?! bis jetzt weis ich nur das diese begriffe für felder oder so stehen Kann mir das jmd genauer erläutern?
    Albert





  • ich hof ich hab des einigermasen verstanden...
    Danke sollte ich noch fragen haben werd ich sie posten



  • case WM_PAINT :
              hdc = BeginPaint (hwnd, &ps) ;
    
              si.cbSize = sizeof (si) ;
              si.fMask  = SIF_POS ;
              GetScrollInfo (hwnd, SB_VERT, &si) ;
              iVertPos = si.nPos ;
    
              GetScrollInfo (hwnd, SB_HORZ, &si) ;
              iHorzPos = si.nPos ;
    
              iPaintBeg = max (0, iVertPos + ps.rcPaint.top / cyChar) ;
              iPaintEnd = min (NUMLINES - 1, iVertPos + ps.rcPaint.bottom / cyChar) ;
    

    Kann mir jemand die letzten beiden zeilen erklähren?

    iPaintBeg = max (0, iVertPos + ps.rcPaint.top / cyChar) ;
              iPaintEnd = min (NUMLINES - 1, iVertPos + ps.rcPaint.bottom / cyChar) ;
    

Anmelden zum Antworten