LockWindowUpdate() - много гадно, бе!

5 отговора 277 прегледа
#1

LockWindowUpdate() - много гадно, бе!

LockWindowUpdate() се било ползвало, за да няма трепкане докато си променяш това-онова в прозорец.
Супер е, спира да трепка, само че започва трепкане на всичко останало извън RECT-а на прозореца, който е локнат, дори и да е минимизиран.

Някой знае ли нещо по въпроса? Под NT4 и w2000 e едно и също. Нямам 98 под ръка да видя, но все тая - трябва да работи нормално във всички.

Отговор
в отговор на Xypodilec #2

Re: LockWindowUpdate() - много гадно, бе!

хм.. какво толкова рисуваш по тоя прозорец, че трепка така?
ако не са много сложни неща - не би трябвало да трепти, ако са много извергски - решението е стандартно - рисуваш в memory device context и след това мяташ всичкото наведнъж към екранния DC като bitmap.

Отговор
в отговор на Xypodilec #3

Re: LockWindowUpdate() - много гадно, бе!

Е, не си съвсем прав - LockWindowUpdate спира трепкането, обаче като свършиш рисуването и извикаш UnlockWindowUpdate, тогава започва трептене на ВСИЧКИ прозорци. Решение не мога да ти предложа - при нас това се получаваше на 95, 98 и W2000 и накрая се принудихме да разкараме Lock-а.

Отговор
в отговор на Mandor #4

Да де

И аз това казах. Трепка всичко освен него.

Отговор
в отговор на _ #5

thread

Сменям всичко в ListCtrl oт отделен thread. Ако се пусне от главния е добре, ако е от другия - трепка. SetRedraw() няма ефект. Ще го поразгледам, може и да има читаво решение.

Отговор
в отговор на Xypodilec #6

Re: LockWindowUpdate() - много гадно, бе!

Moqt sywet moze bi weche ti e izwesten, no da si kaza: ako poglednesh w codeproject, tam ima mnoo dobyr MemDC, koito e idealen za podobni neshta. Syshto taka raznite mu custom controls-i chesto izpolzwat takyw MemDC za da si risuwat sydyrjanieto.

Ako ne si poglednal oshte tam - idi na [линк]

Pozdrawi!

Отговор