Satan Ierakstīts Februāris 18, 2015 Share Ierakstīts Februāris 18, 2015 (labots) Nesaprotu šīs funkcijas jēgu, tajos piemēros kuros ir parādīts kā to lietot. Piemēram MSDN lapā ( http://msdn.microsoft.com/en-us/library/windows/desktop/hh298421%28v=vs.85%29.aspx ) vai C.Pretzolda programmā sysmets3.c ( http://www.charlespetzold.com/pw5/SysMets3.c ).Kad WinProc saņem WM_VSCROLL message , tad tieši pirms return 0 ir šāds kods: // If the position has changed, scroll window and update it. if (si.nPos != yPos) { ScrollWindow(hwnd, 0, yChar * (yPos - si.nPos), NULL, NULL); UpdateWindow (hwnd); } taču, ScrollWindow funkciju var izņemt un nomainīt pret: InvalidateRect(hwnd, NULL, TRUE); jo kad ir WM_PAINT message, tad for loops uzzīmē visu kā vajag vadoties pēc SCROLLINFO struktūras datiem,iznāk ka šajos piemēros lieki tiek prasīts zīmēt divas reizes - vienu prasa ScrollWindow, kas kautko tikai uzzīmē un for cikls, kas uzzīmē visu: case WM_PAINT : // Prepare the window for painting. hdc = BeginPaint (hwnd, &ps); // Get vertical scroll bar position. si.cbSize = sizeof (si); si.fMask = SIF_POS; GetScrollInfo (hwnd, SB_VERT, &si); yPos = si.nPos; // Get horizontal scroll bar position. GetScrollInfo (hwnd, SB_HORZ, &si); xPos = si.nPos; // Find painting limits. FirstLine = max (0, yPos + ps.rcPaint.top / yChar); LastLine = min (LINES - 1, yPos + ps.rcPaint.bottom / yChar); for (i = FirstLine; i <= LastLine; i++) {.. } Vai varat izskaidrot šīs funkcijas nozīmi šajā(s) programmā(s) un pielietojumu reālās programmās? Labots Februāris 18, 2015 - Satan Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!