Quando o sistema cria um controle editar, ele automaticamente cria um buffer de texto, define seu tamanho inicial e aumenta o tamanho conforme necessário. O tamanho pode ser um limite predefinido de aproximadamente 32 kilobytes para controles editar single-line. Porque pode alterar este limite, ele é chamado um limite suave. Um aplicativo pode definir um limite de disco rígido para o tamanho do buffer enviando uma mensagem EM_SETLIMITTEXT para o controle editar. Se o buffer exceder o limite, o sistema envia uma mensagem EN_ERRSPACE o aplicativo. Um aplicativo pode recuperar o atual limite de texto enviando uma mensagem EM_GETLIMITTEXT.
O sistema normalmente cria um buffer de controle de editar em uma caixa de diálogo usando a memória fora do segmento de dados do aplicativo. Um aplicativo pode suprimir esse comportamento de alocação padrão e criar a reserva de sua pilha local usando o estilo DS_LOCALEDIT ao criar o Controlarar de editar. Um aplicativo que usa o estilo DS_LOCALEDIT é responsável por todas as alocações de buffer. Para fazer a alocação inicial, um aplicativo pode chamar o LocalAlloc função e passe o buffer retornado identificador para o controle editar enviando uma mensagem EM_SETHANDLE . Para fazer alocações subseqüentes (em resposta a uma mensagem EN_ERRSPACE, por exemplo), um aplicativo deve salvar o conteúdo atual do buffer (se necessário) e obter um novo buffer como segue
As mensagens EM_SETHANDLE e EM_GETHANDLE se aplica somente a controles de Editar de várias linhas.
Um aplicativo que usa o comportamento de alocação padrão (ou seja, não usa o estilo DS_LOCALEDIT) não deve enviar mensagens EM_SETHANDLE e EM_GETHANDLE para o Controlarar de editar.
Enviar uma mensagem de EM_SETHANDLE tem vários efeitos colaterais: limpa o Sinalizar de desfazer (fazendo a mensagem EM_CANUNDO retornar zero), ele limpa o Sinalizar de modificar (fazer a mensagem EM_GETMODIFY retornar zero) e redesenha a janela Editar controle.