Hospedagem controles do Windows Forms em janelas nativas, classe de janela = “Static”
-
11-09-2019 - |
Pergunta
Eu preciso para fornecer controle a um aplicativo nativo (Visual Studio) Windows Forms.
Então eu criar um controle e fornecer sua alça.
Então, quando eu verificar a janela nativa usando Spy ++, vejo que meu controle é envolto em 'controle' adicional com a classe da janela = "Static" eo título "Esta é uma estática!". Eu tenho vários problemas com ele:
- eventos de redimensionamento enviadas para meu controle por uma janela hospedagem tem que ser para o "Static" por isso também fica redimensionada (caso contrário meu controle se parcialmente escondido dentro tamanho da estática) enviou-re.
- A estática não tem
WS_EX_CONTROLPARENT
, o que provoca KB149501 a aparecer (em suma, toda aplicativo trava de foco perdidos). - Se eu aplicar
WS_EX_CONTROLPARENT
, caixa de listagem dentro da estática pára redesenho.
Eu acho que eu tenho feito algo errado, mas eu não sei o que. Google não ajuda, uma vez estático é um C # palavra-chave tão bem como ela ocorre muitas vezes em WinForms resultados.
Solução
Eu, principalmente, resolveu o problema redesenho usando DoubleBuffered = True, então provavelmente é isso.
Eu ainda acho que eu estou fazendo algo errado, mas pelo menos ele funciona agora.