O que causa ws_tabstop afetar a ordem da pintura da janela?
-
13-11-2019 - |
Pergunta
No WTL, o CBITMapButton não suporta a imagem com camada transparente, como png. Então eu personalizo o código para usar o GDI + para desenhar png, nomeá-lo como cpngbutton. Mas as coisas são estranhas no Win XP. Quando o botão é sobrepor por outra janela, o botão recebe primeiro WM_Paint e, em seguida, o pai, causando resultado incorreto.
--->
Eu verifico o recurso e removo o atributo WS_TABSTOP no modelo do botão, as coisas ficam OK, a janela pai recebe primeiro a WM_Paint, depois o botão. O que causa ws_tabstop afetar a ordem da pintura da janela?
Solução
Isso é o que acontece quando você não desenha o fundo.Isso deixa um 'buraco' na janela, você vê os pixels de qualquer janela está atrás do seu.Ou a área de trabalho, se não houver tal janela.Não, caso contrário, é diferente do que isso tem a ver com WS_TABSTOP.
Use o sinalizador WS_EX_TRANSPARENT.Que informa o Windows que você deseja que o pai do botão se aproxime na janela do cliente para fornecer os pixels de fundo.