Pergunta

Em quase qualquer aplicativo do Windows, noto que segurando o botão do mouse em uma área não-cliente faz com que a pintura a parada. Por que isso é necessário?

Por exemplo, eu tenho um aplicativo Direct 3D Managed que exibe um cubo girando. Se eu colocar o ponteiro do mouse sobre a barra de título e segure o botão do mouse pressionado, o cubo deixa de rotação mesmo que eu não ter codificado tais condições no meu loop.

Por que é a pintura interrompida? Quais são os benefícios? Mais importante ainda, como posso resolver isso?

Foi útil?

Solução

Quando você clica na barra de título, há uma breve pausar enquanto o gerenciador de janelas tenta determinar se você está ou não clique ou iniciar um arrastar (mover a janela). Se você ainda está segurando o botão, então é um empecilho: o gerenciador de janelas estabelece o seu próprio loop de mensagem e bombas mensagens até que você soltar o mouse. Sua janela ainda deve ser capaz de processar mensagens, porque eles ainda vai ser despachado, mas se sua animação depende de um ciclo de mensagem personalizada, então você vai ser preso 'até os confins modal de loop arrasto.

trabalhar em torno dele, desencadeando sua animação em resposta a mensagens:. Um temporizador parece ser uma boa escolha para me

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top