Guest id194 Posted June 22, 2008 at 12:10 AM Report Share #192750 Posted June 22, 2008 at 12:10 AM Hi, Estou a tentar criar uma aplicação com skins (apenas mudando o border e a caption) de uma forma diferente do que a que seria habitual (processar as mensagens do Windows e pintar no WM_NCPAINT) mas estou a ter bastantes problemas quando redimensiono o form. A melhor forma de explicar este problema é com um vídeo, por isso, vejam o seguinte: http://www.screencast.com/t/AIqK9Szmz Aqui têm uma solução completa do VS2008 onde podem testar por vocês mesmos este problema e com todo o código que estou a usar: http://stuff.nazgulled.net/misc/TestForm.zip Alguém tem ideia de como solucionar este problema? Link to comment Share on other sites More sharing options...
NEDM64 Posted June 23, 2008 at 04:03 AM Report Share #192955 Posted June 23, 2008 at 04:03 AM Tiver a ver o teu códgio, e a tentar modificá-lo para que desenhasse o quadrado branco (de fundo) primeiro... O que tirei é que quando fazes resize da janela, ele executa o OnResize(etc). Nesse OnResize, ele primeiro redesenha os controlos da form, tudo, e no fim, faz o OnPaintBackground... Provávelmente, vais ter de fazer um override ao OnResize, e talvez ao OnResizeBegin e OnResizeEnd... boa sorte 😛 Já que parece ser mais dificel que o OnPaintBackground. O grande problema é que o Windows comporta-se assim mesmo quando fazes resize de uma janela sem borders, como a tua... Se fores a ver, por exemplo, o WLM, que usa de certeza uma técnica como a tua (experimenta maximizar), vais ver que ele move a janela, para a direcção que estás a redimensionar, cria uma janela invizivel, e quando esta estiver desenhada, apaga a anterior e mostra a nova... Não tenho capacidade para isso, mas talvez consigas 😄 Link to comment Share on other sites More sharing options...
Guest id194 Posted June 23, 2008 at 05:20 AM Report Share #192956 Posted June 23, 2008 at 05:20 AM O problema não está no resize, o problema está no double buffering que não está funcionar como deve ser... Já me sugeriram algumas técnicas que irei tentar implementar no futuro... E isso do WLM é mentira (no meu não acontece o que dizes), isso deve ser porque tens os efeitos do Windows desactivados. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now