Pergunta

Meu programa tem vários segmentos. Eu estou usando messagebox para exibir informações para o usuário. Existe uma maneira (ou uma alternativa a caixa de mensagem) que eu possa ter uma outra atualização thread / alterar o texto mensagem-box enquanto a caixa de mensagem ainda está na tela e visível pelo usuário?

Foi útil?

Solução

Usando ganchos específicos-thread via GetCurrentThreadId () e SetWindowsHookEx (), você pode ligar as mensagens que MessageBox () recebe internamente, bem como ter acesso ao principal identificador de janela da caixa de diálogo, que, em seguida, você ganha acesso a todos os controles filho do diálogo. em seguida, você pode personalizar o diálogo e seu controle, conforme necessário. Esta técnica é comumente usado para a implementação de diálogos auto-fechamento (antes MessageBoxTimeout () foi introduzido), personalizar o texto dos botões, etc.

Outras dicas

Se você estiver usando uma caixa de mensagem Win32 padrão Eu não acredito que haja qualquer forma de mudar o texto uma vez que a caixa já é mostrado (você entra em uma bomba de mensagem modal).

Eu sugiro que você crie sua própria janela que ouve mensagens / atualização de seus outros tópicos. Dessa forma, você está no controle.

Eu não acredito que há uma maneira direta de fazer isso, você provavelmente poderia tentar obter o identificador de janela, mas isso é muito confuso. Sua melhor aposta é para criar o seu própria caixa de diálogo para que você você tem total controle sobre ele.

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