Pergunta

Na minha aplicação eu tenho uma janela que eu popup com pequenas mensagens nele (pensar semelhante a dica de ferramenta).Esta janela usa em camadas de atributos para desenhar alfa planos de fundo, etc.

Se eu tenho várias dessas janelas abertas de uma vez, e eu clique com o meu mouse, quando eles desaparecem eles fazer a minha aplicação para perder o foco (que muda o foco para o app trás o atual).

Como faço para parar de qualquer interação na minha janela?

Foi útil?

Solução 2

Depois de jogar com o WM_NCACTIVATE mensagem sem sorte, eu anulava o WM_SETFOCUS mensagem:

void CMyWindow::OnSetFocus(CWnd* pOldWnd)
{
    if (pOldWnd != NULL)
    {
        pOldWnd->SetFocus();
    }
}

Que parece não fazer o truque.Nenhuma idéia de por que ele funciona embora!Comentários de boas-vindas sobre o assunto.

Outras dicas

Ele funciona porque OnSetFocus (como muitos de* métodos) dá-lhe uma chance de antecipar-se a uma ação antes que ela realmente ocorre.O foco, na verdade, nunca muda para o seu não-interactivo.

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