![]() | |
| |||||||
| Home | Register | Blogs | FAQ | Members List | Calendar | Downloads | Arcade | Mark Forums Read |
| Languages, Compilers and Interpreters C,C++,C#,.NET,Java,PHP,Perl,SQL and more |
![]() |
| | LinkBack | Thread Tools | Display Modes |
| | #1 |
| Главный инспектор снов | Predpolozhim u menja est' dialog, na kotorom setka nxn (n w kwadrate elementow) prichem w kazhdom elemente stoit bitmap (BitBlt i wse takoe) kazhdyj raz w OnPaint pererisowywat' wse n*n elementow nespodruchno (nabljudaetsja "trtroc"). Wopros Mozhet kto znaet kak uznar' kakja chast' okna byla poterjana ( w rezul'tate perekrywanija, ili uxoda uz widimoj oblasti desktopa) chtob pererisowywat' tol'ko etu chast'?
__________________ Kill'em!!! Kill'em all!!! |
| | |
| | #2 |
| Administrator | look at CWnd::GetUpdateRect (...Retrieves the coordinates of the smallest rectangle that completely encloses the update region....)
__________________ И повешенные могут качаться в неположенную сторону. /С.Е.Лец/ |
| | |
| | #4 |
| Дошкольник Join Date: Mar 2002 Location: ARMENIA,Yerevan
Posts: 141
Rep Power: 7 Reputation:
10 | в Win32 API есть такая функция: InvlidateRect(HWND hWnd,CONST RECT *lpRect,BOOL bErase); она посылает сообщение WM_PAINT окну дескриптор у которого hWnd и перерисовывает часть окна отмечаной структурой *lpRect (указатель на структуру типа RECT). Параметр bErase указывает перерисовать или нет бэкграунд окна в данном обновленном регионе.
__________________ Не трать время на человека, который не стремится провести его с тобой. Г. Г. Маркес |
| | |
| | #5 |
| Главный инспектор снов | 2 Greco El 10x for assistance, GetUpadateRect is that what were I looking for. 2 Lion King Duq sxal eq haskacel harc@. harc@ ajn er, te Ajd invalidaterect-in ich amenapoqr koordinat kareli e poxancel wor lriv pagi korats region@.
__________________ Kill'em!!! Kill'em all!!! |
| | |
| | #6 | |
| Дошкольник Join Date: Mar 2002 Location: ARMENIA,Yerevan
Posts: 141
Rep Power: 7 Reputation:
10 | Quote:
![]()
__________________ Не трать время на человека, который не стремится провести его с тобой. Г. Г. Маркес | |
| | |
| | #7 |
| Дошкольник Join Date: Mar 2002 Location: Yerevan
Posts: 111
Rep Power: 7 Reputation:
10 | А вообще, техника перерисовывани без "моргания" в MSDN-е неплохо охвачена, при поиске на слово "flicker" дает немало ресурсов. Кстати, если же в сетке дочерние окошки сидят, то очень помогате WS_CLIPCHILDREN, а если вся перерисовка родная - и если вышеуказанные советы не помогают (зависит от конкретной ситуации, немного не совсем ясно, в чем именно у тебя проблема), поскольку в общем, моргать не должно, даже если ты перерисовываешь все - ОnPaint() овский DC уже и так клипнутый. А если моргает, значит может ты рисуешь в другой DC, отдельно полученный, то есть если сменишь его на BeginPaint-овский, все пройдет. Еще есть вариант, что даже если ты все сделаешь правильно, то тебя может раздражать моргание даже той частично перерисовываемой области, это тоже решаемо - можно просто рисовать в memory DC, используя его как кэш, а потом битблитом кидать в нужное место. |
| | |