000
28.01.2007, 14:32 Uhr
a103
|
Hi Leute Kann mir jemand von euch erklären was diese (ich denk mal) Makros min / max bewirken sollen und woher dieses ps.rcPaint.top / ps.rcPaint.bottom kommen?! sind diese schon von der IDE definiert oder wie?
case WM_PAINT : hdc = BeginPaint (hwnd, &ps) ;
// Positionsabfrage der vertikalen Bildlaufleiste si.cbSize = sizeof (si) ; si.fMask = SIF_POS ; GetScrollInfo (hwnd, SB_VERT, &si) ; iVertPos = si.nPos ;
// Positionsabfrage der horizontalen Bildlaufleiste GetScrollInfo (hwnd, SB_HORZ, &si) ; iHorzPos = si.nPos ;
// Welche Zeilen müsssen tatsächlich ausgegeben werden? iPaintBeg = max (0, iVertPos + ps.rcPaint.top / cyChar) ; iPaintEnd = min (NUMLINES - 1, iVertPos + ps.rcPaint.bottom / cyChar) ; for (i = iPaintBeg ; i <= iPaintEnd ; i++) { x = cxChar * (1 - iHorzPos) ; y = cyChar * (i - iVertPos) ; TextOut (hdc, x, y, sysmetrics.szLabel, lstrlen (sysmetrics.szLabel)) ; TextOut (hdc, x + 22 * cxCaps, y, sysmetrics.szDesc, lstrlen (sysmetrics.szDesc)) ; SetTextAlign (hdc, TA_RIGHT | TA_TOP) ; // rechtsbündig TextOut (hdc, x + 22 * cxCaps + 55 * cxChar, y, szBuffer, wsprintf (szBuffer, TEXT ("%5d"), GetSystemMetrics (sysmetrics.iIndex))) ;
SetTextAlign (hdc, TA_LEFT | TA_TOP) ; // zurück auf linksbündig }
Albert |