Compartilhar via

É possível mover o caret em um texto (com imagens) inserido com SENDMESSAGE?

Denis Valjean 0 Pontos de reputação
2024-10-19T15:23:36.8633333+00:00

Eu consigo facilmente inserir texto e posicionar o caret como quero, quando há apenas texto. Mas se há uma imagem colada no final, simulada com CTRL+V par aum editor html, não consigo mais mover o caret, ele fica sempre após a imagem colada. Tentei reposicionar o cursor depois de colar a imagem, mas sem sucesso. Alguma ideia??? No MSword, através da API, eu consigo fazer, mas em editores html não.

   # Inserir o texto via SendMessage
            win32gui.SendMessage(focused_hwnd, win32con.EM_REPLACESEL, False, text)
            # Ajustar a posição do cursor após a inserção
            new_cursor_pos = sel_start + cursor_offset
            win32gui.SendMessage(focused_hwnd, win32con.EM_SETSEL, new_cursor_pos, new_cursor_pos)
            return True
Windows para empresas | Cliente Windows para profissionais de TI | Experiência do usuário | Outro
0 comentários Sem comentários
{count} votos

3 respostas

Classificar por: Mais útil
  1. Jonathan Pereira Castillo 17,395 Pontos de reputação Equipe Externa da Microsoft Moderador
    2024-12-03T23:31:20.1866667+00:00

    Bom dia Denis Valjean!,

    Conforme as informações anteriormente fornecidas, o objetivo desta mensagem é realizar uma verificação das mesmas. Caso possua novas atualizações referentes a este assunto, por favor, sinta-se à vontade para responder neste mesmo tópico.

    Atenciosamente,

    Jonathan

    -----------

    Sua opinião é muito importante para nós! Se esta resposta resolveu sua consulta, por favor clique em ‘YES‘. Isso nos ajuda a melhorar continuamente a qualidade e relevância de nossas soluções. Obrigado pela sua colaboração!

    0 comentários Sem comentários

  2. Jonathan Pereira Castillo 17,395 Pontos de reputação Equipe Externa da Microsoft Moderador
    2024-11-05T16:53:27.1833333+00:00

    Oi Denis Valjean!,

    O objetivo desta mensagem é verificar as informações fornecidas. Se tiver mais atualizações sobre este assunto, por favor, não hesite em responder neste mesmo tópico.

    Cuidadosamente                 

    Jonathan

    -----------

    Sua opinião é muito importante para nós! Se esta resposta resolveu sua consulta, por favor clique em ‘YES‘. Isso nos ajuda a melhorar continuamente a qualidade e relevância de nossas soluções. Obrigado pela sua colaboração!

    0 comentários Sem comentários

  3. Jonathan Pereira Castillo 17,395 Pontos de reputação Equipe Externa da Microsoft Moderador
    2024-10-22T21:48:34.1066667+00:00

    Oi Denis Valjean!

    Bem-vindo ao Microsoft Q&A!

    Mover o caret em um texto que inclui imagens inseridas com SendMessage pode ser complicado, especialmente em editores HTML. Aqui estão algumas sugestões que podem ajudar:

    Inserir a Imagem e Ajustar o Caret:

    • Após inserir a imagem, tente ajustar a posição do caret manualmente. Você pode precisar de um pequeno atraso para garantir que a imagem seja processada antes de mover o caret. Usar JavaScript para Editores HTML:
    • Se estiver trabalhando com um editor HTML, considere usar JavaScript para manipular o caret. Aqui está um exemplo de como você pode fazer isso:
    function setCaretAfterImage() {
        var img = document.querySelector('img:last-of-type');
        if (img) {
            var range = document.createRange();
            var sel = window.getSelection();
            range.setStartAfter(img);
            range.collapse(true);
            sel.removeAllRanges();
            sel.addRange(range);
        }
    }
    

    Combinar VBA com JavaScript:

    • Se você estiver usando VBA para inserir texto e imagens, pode ser útil combinar VBA com JavaScript para ajustar o caret em editores HTML.

    Espero que essas dicas ajudem a resolver o problema! Se precisar de mais assistência, estou à disposição.

    Saudações

    Jonathan.

    -----------

    Sua opinião é muito importante para nós! Se esta resposta resolveu sua consulta, por favor clique em ‘YES‘. Isso nos ajuda a melhorar continuamente a qualidade e relevância de nossas soluções. Obrigado pela sua colaboração!

    0 comentários Sem comentários

Sua resposta

As respostas podem ser marcadas como ‘Aceitas’ pelo autor da pergunta e ‘Recomendadas’ pelos moderadores, o que ajuda os usuários a saber a resposta que resolveu o problema do autor.