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.

Digite a descrição da imagem aqui --->  Digite a descrição da imagem aqui

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?

Foi útil?

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.

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