Page 1 of 1

IE WebBrowser nu trimite unele mesaje de redesenare

Posted: 22 Aug 2013, 18:48
by Silviu Ardelean
Am un property sheet view cu cateva property pages-uri. Una dintre aceste property page-uri contine o reprezentare HTML folosind o clasa derivata din CHtmlView.
Initial fisierul .html e randat corect. Problema apare uneori la schimbarea intre property page-uri si .html-ul nu e redesenat, fiind un comportament aleator. Conform Spy++, in astfel de situatii unele mesaje Windows nu sunt trimise de catre WebControl (Internet Explorer_Server layer): WM_ERASEBKGRD, WM_PAINT sau WM_NCPAINT.

Tentative de genul Q179421 sau Q183161 nu ajuta rezolvarea. Am IE 10 iar ierarhia ferestrelor este: Shell Embedding -> Shell DocObject View -> Internet Explorer_Server.
Chiar daca fac ceva procesare inainte de randarea html-ului, am reprodus bug-ul si cu un cod .html dummy.

Idei de "workaround" pentru a determina layerul Internet Explorer_Server sa trimita aceste mesaje intotdeauna?

Re: IE WebBrowser nu trimite unele mesaje de redesenare

Posted: 22 Aug 2013, 20:59
by Viorel
E posibil ca clasa CHtmlView să nu fi fost proiectată pentru o astfel de utilizare. Există un proiect simplu care să demonstreze problema?

Re: IE WebBrowser nu trimite unele mesaje de redesenare

Posted: 22 Aug 2013, 21:08
by Silviu Ardelean
Daca functioneaza de 10 ori si sa zicem a 11-a esueaza, tind sa cred ca problema nu e neaparat in CHtmlView (clasa cu destule bug-uri pentru care exista fix-uri, de altfel ) . :) CHtmlView foloseste Internet Explorer_Server.
Inca n-am un proiect demo dar nu e exclus sa fac unul.

Re: IE WebBrowser nu trimite unele mesaje de redesenare

Posted: 22 Jan 2015, 09:04
by Sello
Notificarile gen CBN_SELCHANGE se trimit de catre sistem printelui atunci cand userul ii face ceva copilului.
Deci, logic nu are sens sa le trimiti tu prin program.