![]() |
![]() | #1 |
Главный инспектор снов Join Date: 01 2002 Location: Yerevan, Armenia
Posts: 329
Downloads: 0 Uploads: 0
Reputation: 0 | 0 | ![]()
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!!! |
![]() |
![]() | #4 |
Дошкольник Join Date: 03 2002 Location: ARMENIA,Yerevan Age: 43
Posts: 141
Downloads: 0 Uploads: 0
Reputation: 0 | 0 | ![]()
в Win32 API есть такая функция: InvlidateRect(HWND hWnd,CONST RECT *lpRect,BOOL bErase); она посылает сообщение WM_PAINT окну дескриптор у которого hWnd и перерисовывает часть окна отмечаной структурой *lpRect (указатель на структуру типа RECT). Параметр bErase указывает перерисовать или нет бэкграунд окна в данном обновленном регионе. |
![]() |
![]() | #5 |
Главный инспектор снов Join Date: 01 2002 Location: Yerevan, Armenia
Posts: 329
Downloads: 0 Uploads: 0
Reputation: 0 | 0 | ![]() 2 Greco El 10x for assistance, GetUpadateRect is that what were I looking for. 2 Lion King Duq sxal eq haskacel [email protected] [email protected] ajn er, te Ajd invalidaterect-in ich amenapoqr koordinat kareli e poxancel wor lriv pagi korats [email protected] |
![]() |
![]() | #6 | |
Дошкольник Join Date: 03 2002 Location: ARMENIA,Yerevan Age: 43
Posts: 141
Downloads: 0 Uploads: 0
Reputation: 0 | 0 | ![]() Quote:
![]() | |
![]() |
![]() | #7 |
Дошкольник Join Date: 03 2002 Location: Yerevan
Posts: 111
Downloads: 0 Uploads: 0
Reputation: 0 | 0 | ![]()
А вообще, техника перерисовывани без "моргания" в MSDN-е неплохо охвачена, при поиске на слово "flicker" дает немало ресурсов. Кстати, если же в сетке дочерние окошки сидят, то очень помогате WS_CLIPCHILDREN, а если вся перерисовка родная - и если вышеуказанные советы не помогают (зависит от конкретной ситуации, немного не совсем ясно, в чем именно у тебя проблема), поскольку в общем, моргать не должно, даже если ты перерисовываешь все - ОnPaint() овский DC уже и так клипнутый. А если моргает, значит может ты рисуешь в другой DC, отдельно полученный, то есть если сменишь его на BeginPaint-овский, все пройдет. Еще есть вариант, что даже если ты все сделаешь правильно, то тебя может раздражать моргание даже той частично перерисовываемой области, это тоже решаемо - можно просто рисовать в memory DC, используя его как кэш, а потом битблитом кидать в нужное место. |
![]() |
Sponsored Links |