Compartilhar via


Classe CEdit

Fornece a funcionalidade de um controle de edição do Windows.

Sintaxe

class CEdit : public CWnd

Membros

Construtores públicos

Nome Descrição
CEdit::CEdit Constrói um objeto de controle CEdit.

Métodos públicos

Nome Descrição
CEdit::CanUndo Determina se uma operação de controle de edição pode ser desfeita.
CEdit::CharFromPos Recupera os índices de linha e caractere para o caractere mais próximo de uma posição especificada.
CEdit::Clear Exclui (limpa) a seleção atual (se houver) no controle de edição.
CEdit::Copy Copia a seleção atual (se houver) no controle de edição para a área de transferência no formato CF_TEXT.
CEdit::Create Cria o controle de edição do Windows e o anexa ao objeto CEdit.
CEdit::Cut Exclui (corta) a seleção atual (se houver) no controle de edição e copia o texto excluído na área de transferência no formato CF_TEXT.
CEdit::EmptyUndoBuffer Redefine (limpa) o sinalizador de desfazer de um controle de edição.
CEdit::FmtLines Ativa ou desativa a inclusão de caracteres de quebra de linha suave em um controle de edição de várias linhas.
CEdit::GetCueBanner Recupera o texto exibido como a indicação de texto ou dica, em um controle de edição quando o controle está vazio e não tem foco.
CEdit::GetFirstVisibleLine Determina a linha mais visível em um controle de edição.
CEdit::GetHandle Recupera um identificador para a memória alocada atualmente para um controle de edição de várias linhas.
CEdit::GetHighlight Obtém os índices dos caracteres iniciais e finais em um intervalo de texto realçado no controle de edição atual.
CEdit::GetLimitText Obtém a quantidade máxima de texto que CEdit pode conter.
CEdit::GetLine Recupera uma linha de texto de um controle de edição.
CEdit::GetLineCount Recupera o número de linhas em um controle de edição de várias linhas.
CEdit::GetMargins Obtém as margens esquerda e direita para CEdit.
CEdit::GetModify Determina se o conteúdo de um controle de edição foi modificado.
CEdit::GetPasswordChar Recupera o caractere de senha exibido em um controle de edição quando o usuário insere o texto.
CEdit::GetRect Obtém o retângulo de formatação de um controle de edição.
CEdit::GetSel Obtém a primeira e a última posição do caractere da seleção atual em um controle de edição.
CEdit::HideBalloonTip Oculta qualquer dica de balão associada ao controle de edição atual.
CEdit::LimitText Limita o comprimento do texto que o usuário pode inserir em um controle de edição.
CEdit::LineFromChar Recupera o número de linha da linha que contém o índice de caracteres especificado.
CEdit::LineIndex Recupera o índice de caracteres de uma linha dentro de um controle de edição de várias linhas.
CEdit::LineLength Recupera o comprimento de uma linha em um controle de edição.
CEdit::LineScroll Rola o texto de um controle de edição de várias linhas.
CEdit::Paste Insere os dados da área de transferência no controle de edição na posição atual do cursor. Os dados serão inseridos somente se a área de transferência contiver dados no formato CF_TEXT.
CEdit::PosFromChar Recupera as coordenadas do canto superior esquerdo de um índice de caracteres especificado.
CEdit::ReplaceSel Substitui a seleção atual em um controle de edição pelo texto especificado.
CEdit::SetCueBanner Define o texto exibido como a indicação de texto ou dica, em um controle de edição quando o controle está vazio e não tem foco.
CEdit::SetHandle Define o identificador para a memória local que será usada por um controle de edição de várias linhas.
CEdit::SetHighlight Realça um intervalo de texto exibido no controle de edição atual.
CEdit::SetLimitText Define a quantidade máxima de texto que CEdit pode conter.
CEdit::SetMargins Define as margens esquerda e direita para CEdit.
CEdit::SetModify Define ou limpa o sinalizador de modificação para um controle de edição.
CEdit::SetPasswordChar Define ou remove um caractere de senha exibido em um controle de edição quando o usuário insere o texto.
CEdit::SetReadOnly Define o estado somente leitura de um controle de edição.
CEdit::SetRect Define o retângulo de formatação de um controle de edição de várias linhas e atualiza o controle.
CEdit::SetRectNP Define o retângulo de formatação de um controle de edição de várias linhas sem redesenhar a janela de controle.
CEdit::SetSel Seleciona um intervalo de caracteres em um controle de edição.
CEdit::SetTabStops Define as paradas de tabulação em um controle de edição de várias linhas.
CEdit::ShowBalloonTip Exibe uma dica de balão associada ao controle de edição atual.
CEdit::Undo Inverte a última operação de controle de edição.

Comentários

Um controle de edição é uma janela filho retangular na qual o usuário pode inserir texto.

Você pode criar um controle de edição de um modelo de caixa de diálogo ou diretamente em seu código. Em ambos os casos, primeiro chame o construtor CEdit para construir o objeto CEdit; em seguida, chame a função membro Criar para criar o controle de edição do Windows e anexá-lo ao objeto CEdit.

A construção pode ser um processo de uma etapa em uma classe derivada de CEdit. Escreva um construtor para a classe derivada e chame Create de dentro do construtor.

CEdit herda a funcionalidade significativa de CWnd. Para definir e recuperar texto de um objeto CEdit, use as funções de membro CWndSetWindowText e GetWindowText, que definem ou obtêm todo o conteúdo de um controle de edição, mesmo que seja um controle multilinha. As linhas de texto em um controle multilinha são separadas por sequências de caracteres '\r\n'. Além disso, se um controle de edição for multilinha, obtenha e defina parte do texto do controle chamando as funções de membro CEditGetLine, SetSel, GetSel e ReplaceSel.

Se você quiser lidar com mensagens de notificação do Windows enviadas por um controle de edição para seu pai (geralmente uma classe derivada de CDialog), adicione uma entrada de mapa de mensagens e uma função membro do manipulador de mensagens à classe pai para cada mensagem.

Cada entrada de mapa de mensagens usa o seguinte formulário:

ON_NOTIFICATION(id,memberFxn)

em que id especifica a ID da janela filho do controle de edição que envia a notificação, e memberFxn é o nome da função membro pai que você escreveu para lidar com a notificação.

O protótipo de função do pai é o seguinte:

afx_msg void memberFxn ( );

Veja a seguinte lista de possíveis entradas de mapa de mensagens e uma descrição dos casos em que elas seriam enviadas ao pai:

  • ON_EN_CHANGE O usuário tomou uma ação que pode ter alterado o texto em um controle de edição. Ao contrário da mensagem de notificação EN_UPDATE, essa mensagem de notificação é enviada após o Windows atualizar a exibição.

  • ON_EN_ERRSPACE O controle de edição não pode alocar memória suficiente para atender a uma solicitação específica.

  • ON_EN_HSCROLL O usuário clica na barra de rolagem horizontal de um controle de edição. A janela pai é notificada antes da atualização da tela.

  • ON_EN_KILLFOCUS O controle de edição perde o foco de entrada.

  • ON_EN_MAXTEXT A inserção atual excedeu o número especificado de caracteres para o controle de edição e foi truncada. Também enviado quando um controle de edição não tem o estilo ES_AUTOHSCROLL e o número de caracteres a serem inseridos excederia a largura do controle de edição. Também enviado quando um controle de edição não tem o estilo ES_AUTOVSCROLL e o número total de linhas resultantes de uma inserção de texto excederia a altura do controle de edição.

  • ON_EN_SETFOCUS Enviado quando um controle de edição recebe o foco de entrada.

  • ON_EN_UPDATE O controle de edição está prestes a exibir texto alterado. Enviado após o controle formatar o texto, mas antes de exibir o texto para que o tamanho da janela possa ser alterado, se necessário.

  • ON_EN_VSCROLL O usuário clica na barra de rolagem vertical de um controle de edição. A janela pai é notificada antes da atualização da tela.

Se você criar um objeto CEdit com base em uma caixa de diálogo, o objeto CEdit será destruído automaticamente quando o usuário fechar a caixa de diálogo.

Se você criar um objeto CEdit com base em um recurso de caixa de diálogo usando o editor de caixa de diálogo, o objeto CEdit será destruído automaticamente quando o usuário fechar a caixa de diálogo.

Se você criar um objeto CEdit dentro de uma janela, talvez também seja necessário destruí-lo. Se você criar o objeto CEdit na pilha, ele será destruído automaticamente. Se você criar o objeto CEdit no heap usando a função new, deverá chamar o objeto delete para destruí-lo quando o usuário terminar o controle de edição do Windows. Se você alocar qualquer memória no objeto CEdit, substitua o destruidor CEdit para descartar as alocações.

Para modificar certos estilos em um controle de edição (como ES_READONLY), você deve enviar mensagens específicas para o controle em vez de usar ModifyStyle. Consulte Estilos de Controle de Edição no SDK do Windows.

Para mais informações sobre CEdit, confira Controles.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CEdit

Requisitos

Cabeçalho: afxwin.h

CEdit::CanUndo

Chame essa função para determinar se a última operação de edição pode ser desfeita.

BOOL CanUndo() const;

Valor de Devolução

Diferente de zero se a última operação de edição puder ser desfeita por uma chamada para a função membro Undo; 0 se não puder ser desfeita.

Comentários

Para mais informações, confira EM_CANUNDO no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::Undo.

CEdit::CEdit

Constrói um objeto CEdit.

CEdit();

Comentários

Use Criar para construir o controle de edição do Windows.

Exemplo

// Declare a local CEdit object.
CEdit myEdit;

// Declare a dynamic CEdit object.
CEdit *pmyEdit = new CEdit;

CEdit::CharFromPos

Chamar essa função para recuperar os índices de linha e caracteres baseados em zero do caractere mais próximo do ponto especificado neste controle CEdit

int CharFromPos(CPoint pt) const;

Parâmetros

pt
As coordenadas de um ponto na área de cliente deste objeto CEdit.

Valor de Devolução

O índice de caracteres na palavra de baixa ordem e o índice de linha na palavra de alta ordem.

Comentários

Observação

Essa função membro está disponível a partir do Windows 95 e Windows NT 4.0.

Para mais informações, confira EM_CHARFROMPOS no SDK do Windows.

Exemplo

// CMyEdit inherits from CEdit
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
   int n = CharFromPos(point);
   int nLineIndex = HIWORD(n);
   int nCharIndex = LOWORD(n);
   TRACE(_T("nLineIndex = %d, nCharIndex = %d\r\n"), nLineIndex, nCharIndex);

   CEdit::OnLButtonDown(nFlags, point);
}

CEdit::Clear

Chame essa função para excluir (limpar) a seleção atual (se houver) no controle de edição.

void Clear();

Comentários

A exclusão executada por Clear pode ser desfeita chamando a função membro Desfazer.

Para excluir a seleção atual e colocar o conteúdo excluído na área de transferência, chame a função membro Cortar.

Para mais informações, confira WM_CLEAR no SDK do Windows.

Exemplo

// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();

CEdit::Copy

Chame essa função para copiar a seleção atual (se houver) no controle de edição para a área de transferência no formato CF_TEXT.

void Copy();

Comentários

Para mais informações, confira WM_CLEAR no SDK do Windows.

Exemplo

// Copy all of the text to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Copy();

CEdit::Create

Cria o controle de edição do Windows e o anexa ao objeto CEdit.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parâmetros

dwStyle
Especifica o estilo do controle de edição. Aplique qualquer combinação de estilos de edição ao controle.

rect
Especifica o tamanho e a posição do controle de edição. Pode ser um objeto CRect ou uma estrutura RECT.

pParentWnd
Especifica a janela pai do controle de edição (geralmente CDialog). Não pode ser NULL.

Nid
Especifica a ID do controle de edição.

Valor de Devolução

Não zero se a inicialização for bem-sucedida; caso contrário, 0.

Comentários

Um objeto CEdit é construído em duas etapas. Primeiro chame o construtor CEdit, então chame Create, o que cria o controle de edição do Windows e o anexa ao objeto CEdit.

Quando Create é executado, o Windows envia as mensagens WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE e WM_GETMINMAXINFO para o controle de edição.

Essas mensagens são manipuladas por padrão pelas funções membro OnNcCreate, OnNcCalcSize, OnCreate e OnGetMinMaxInfo na classe base CWnd. Para estender o tratamento de mensagens padrão, derive uma classe de CEdit, adicione um mapa de mensagem à nova classe e substitua as funções de membro do manipulador de mensagens acima. Substitua OnCreate, por exemplo, para executar a inicialização necessária para a nova classe.

Aplique os seguintes estilos de janela a um controle de edição.

  • WS_CHILD sempre

  • WS_VISIBLE Habitualmente

  • WS_DISABLED Raramente

  • WS_GROUP Para agrupar controles

  • WS_TABSTOP Para incluir o controle de edição na ordem de tabulação

Exemplo

// dynamically create an edit control
CEdit *pEdit = new CEdit;
pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
              CRect(10, 10, 100, 100), this, 1);

CEdit::Cut

Chame essa função para excluir (cortar) a seleção atual (se houver) no controle de edição e copiar o texto excluído na área de transferência no formato CF_TEXT.

void Cut();

Comentários

A exclusão executada por Cut pode ser desfeita chamando a função membro Desfazer.

Para excluir a seleção atual sem colocar o texto excluído na área de transferência, chame a função de membro Desmarcar.

Para mais informações, confira WM_CUT no SDK do Windows.

Exemplo

// Delete all of the text and copy it to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Cut();

CEdit::EmptyUndoBuffer

Chame essa função para redefinir (limpar) o sinalizador de desfazer de um controle de edição.

void EmptyUndoBuffer();

Comentários

Agora, o controle de edição não poderá desfazer a última operação. O sinalizador de desfazer é definido sempre que uma operação dentro do controle de edição pode ser desfeita.

O sinalizador de desfazer é desmarcado automaticamente sempre que as funções membro SetWindowText ou SetHandleCWnd são chamadas.

Para mais informações, confira EM_EMPTYUNDOBUFFER no SDK do Windows.

Exemplo

// Clear the undo buffer.
if (m_myEdit.CanUndo())
{
   m_myEdit.EmptyUndoBuffer();
   ASSERT(!m_myEdit.CanUndo());
}

CEdit::FmtLines

Chame essa função para ativar ou desativar a inclusão de caracteres de quebra de linha suave em um controle de edição de várias linhas.

BOOL FmtLines(BOOL bAddEOL);

Parâmetros

bAddEOL
Especifica se os caracteres de quebra de linha suave devem ser inseridos. Um valor de TRUE insere os caracteres; um valor de FALSE os remove.

Valor de Devolução

Diferente de zero se ocorrer qualquer formatação; caso contrário, 0.

Comentários

Uma quebra de linha suave consiste em dois retornos de carro e uma alimentação de linha inserida no final de uma linha interrompida por causa de uma quebra automática de linha. Uma quebra de linha rígida consiste em um retorno de carro e uma alimentação de linha. As linhas que terminam com uma quebra de linha não são afetadas por FmtLines.

O Windows só responderá se o objeto CEdit for um controle de edição de várias linhas.

FmtLines afeta apenas o buffer retornado por GetHandle e o texto retornado por WM_GETTEXT. Não tem impacto na exibição do texto dentro do controle de edição.

Para mais informações, confira EM_FMTLINES no SDK do Windows.

Exemplo

CString strText;

// Add soft line-break breaks.
m_myEdit.FmtLines(TRUE);

// Dump the text of the edit control.
m_myEdit.GetWindowText(strText);
AFXDUMP(strText);

// Remove soft line-break breaks.
m_myEdit.FmtLines(FALSE);

CEdit::GetCueBanner

Recupera o texto exibido como a indicação de texto ou dica, em um controle de edição quando o controle está vazio.

BOOL GetCueBanner(
    LPWSTR lpszText,
    int cchText) const;

CString GetCueBanner() const;

Parâmetros

lpszTexto
[out] Um ponteiro para uma cadeia de caracteres que contém o texto da indicação.

cchText
[in] O número de caracteres que podem ser recebidos. Esse número inclui o caractere nulo de terminação.

Valor de Devolução

Na primeira sobrecarga, TRUE se o método for bem-sucedido; caso contrário, FALSE.

Para a segunda sobrecarga, um CString que contém o texto da indicação se o método for bem-sucedido; caso contrário, a cadeia de caracteres vazia ("").

Comentários

Esse método envia a mensagem EM_GETCUEBANNER, que é descrita no SDK do Windows. Para obter mais informações, consulte a macro Edit_GetCueBannerText.

CEdit::GetFirstVisibleLine

Chame essa função para determinar a linha mais visível em um controle de edição.

int GetFirstVisibleLine() const;

Valor de Devolução

O índice baseado em zero da linha visível mais alta. Para controles de edição de linha única, o valor retornado é 0.

Comentários

Para mais informações, confira EM_GETFIRSTVISIBLELINE no SDK do Windows.

Exemplo

int nFirstVisible = m_myEdit.GetFirstVisibleLine();

// Scroll the edit control so that the first visible line
// is the first line of text.
if (nFirstVisible > 0)
{
   m_myEdit.LineScroll(-nFirstVisible, 0);
}

CEdit::GetHandle

Chame essa função para recuperar um identificador para a memória alocada atualmente para um controle de edição de várias linhas.

HLOCAL GetHandle() const;

Valor de Devolução

Um identificador de memória local que identifica o buffer que contém o conteúdo do controle de edição. Se ocorrer um erro, como o envio da mensagem para um controle de edição de linha única, o valor retornado será 0.

Comentários

O identificador é um identificador de memória local e pode ser usado por qualquer uma das funções de memória Local do Windows que utilizam um identificador de memória local como parâmetro.

GetHandle é processado somente por controles de edição de várias linhas.

Chame GetHandle para obter um controle de edição de várias linhas em uma caixa de diálogo somente se a caixa de diálogo tiver sido criada com o sinalizador de estilo DS_LOCALEDIT definido. Se o estilo DS_LOCALEDIT não estiver definido, você ainda obterá um valor de retorno diferente de zero, mas não poderá usar o valor retornado.

Observação

GetHandle não funcionará com o Windows 95/98. Se você chamar GetHandle no Windows 95/98, ele retornará NULL. GetHandle funcionará conforme documentado em Windows NT, versões 3.51 e posteriores.

Para mais informações, confira EM_GETHANDLE no SDK do Windows.

Exemplo

HLOCAL h = m_myEdit.GetHandle();
LPCTSTR lpszText = (LPCTSTR)::LocalLock(h);

// Dump the text of the edit control.
AFXDUMP(lpszText);

::LocalUnlock(h);

CEdit::GetHighlight

Obtém os índices do primeiro e último caracteres em um intervalo de texto realçado no controle de edição atual.

BOOL GetHighlight(
    int* pichStart,
    int* pichEnd) const;

Parâmetros

pichStart
[out] Índice baseado em zero do primeiro caractere no intervalo de texto realçado.

pichEnd
[out] Índice baseado em zero do último caractere no intervalo de texto realçado.

Valor de Devolução

TRUE se o método for bem-sucedido; caso contrário, FALSE.

Comentários

Esse método envia a mensagem EM_GETHILITE, que é descrita no SDK do Windows. SetHighlight e GetHighlight atualmente estão habilitados apenas para builds UNICODE.

CEdit::GetLimitText

Chame essa função membro para obter o limite de texto para este objeto CEdit.

UINT GetLimitText() const;

Valor de Devolução

O limite de texto atual, em TCHARs, para esse objeto CEdit.

Comentários

O limite de texto é a quantidade máxima de texto, em TCHARs, que o controle de edição pode aceitar.

Observação

Essa função membro está disponível a partir do Windows 95 e Windows NT 4.0.

Para mais informações, confira EM_GETLIMITTEXT no SDK do Windows.

Exemplo

CString strText(_T("I'm an edit control!"));
UINT nLength = strText.GetLength() * sizeof(TCHAR);

// Want the text limit to be at least the size of the new string.
if (m_myEdit.GetLimitText() < nLength)
   m_myEdit.SetLimitText(nLength);

m_myEdit.SetWindowText(strText);

CEdit::GetLine

Chame essa função para recuperar uma linha de texto de um controle de edição e a coloque no lpszBuffer.

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer,
    int nMaxLength) const;

Parâmetros

nIndex
Especifica o número de linha a ser recuperado de um controle de edição de várias linhas. Os números de linha são baseados em zero; um valor de 0 especifica a primeira linha. Esse parâmetro é ignorado por um controle de edição de linha única.

lpszBuffer
Aponta para o buffer que recebe uma cópia da linha. A primeira palavra do buffer deve especificar o número máximo de TCHARs que podem ser copiados para o buffer.

nMaxLength
Especifica o número máximo de caracteres TCHAR que podem ser copiados para o buffer. GetLine coloca esse valor na primeira palavra do lpszBuffer antes de fazer a chamada para o Windows.

Valor de Devolução

O número de caracteres realmente copiados. O valor retornado será 0 se o número de linha especificado por nIndex for maior que o número de linhas no controle de edição.

Comentários

A linha copiada não contém um caractere de terminação nulo.

Para mais informações, confira EM_GETLINE no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::GetLineCount.

CEdit::GetLineCount

Chame essa função para recuperar o número de linhas em um controle de edição de várias linhas.

int GetLineCount() const;

Valor de Devolução

Um inteiro que contém o número de linhas no controle de edição de várias linhas. Se nenhum texto tiver sido inserido no controle de edição, o valor retornado será 1.

Comentários

GetLineCount é processado somente por controles de edição de várias linhas.

Para mais informações, confira EM_GETLINECOUNT no SDK do Windows.

Exemplo

int i, nLineCount = m_myEdit.GetLineCount();
CString strText, strLine;
// Dump every line of text of the edit control.
for (i = 0; i < nLineCount; i++)
{
   // length of line i:
   int len = m_myEdit.LineLength(m_myEdit.LineIndex(i));
   m_myEdit.GetLine(i, strText.GetBuffer(len), len);
   strText.ReleaseBuffer(len);
   strLine.Format(_T("line %d: '%s'\n"), i, strText);
   AFXDUMP(strLine);
}

CEdit::GetMargins

Chame essa função membro para recuperar as margens esquerda e direita desse controle de edição.

DWORD GetMargins() const;

Valor de Devolução

A largura da margem esquerda na palavra de baixa ordem e a largura da margem direita na palavra de alta ordem.

Comentários

As margens são medidas em pixels.

Observação

Essa função membro está disponível a partir do Windows 95 e Windows NT 4.0.

Para mais informações, confira EM_GETMARGINS no SDK do Windows.

Exemplo

Veja o exemplo de CEditView::GetEditCtrl.

CEdit::GetModify

Chame essa função para determinar se o conteúdo de um controle de edição foi modificado.

BOOL GetModify() const;

Valor de Devolução

Diferente de zero se o conteúdo do controle de edição tiver sido modificado; 0 se ele permaneceu inalterado.

Comentários

O Windows mantém um sinalizador interno indicando se o conteúdo do controle de edição foi alterado. Esse sinalizador é desmarcado quando o controle de edição é criado pela primeira vez e também pode ser desmarcado chamando a função membro SetModify.

Para mais informações, confira EM_GETMODIFY no SDK do Windows.

Exemplo

// Reset the modified state only if my edit has been modified.
if (m_myEdit.GetModify())
   m_myEdit.SetModify(FALSE);

CEdit::GetPasswordChar

Chame essa função para recuperar o caractere de senha exibido em um controle de edição quando o usuário insere o texto.

TCHAR GetPasswordChar() const;

Valor de Devolução

Especifica o caractere a ser exibido em vez do caractere digitado pelo usuário. O valor retornado será NULL se nenhum caractere de senha existir.

Comentários

Se você criar o controle de edição com o estilo ES_PASSWORD, a DLL que dá suporte ao controle determinará o caractere de senha padrão. O manifesto ou o método InitCommonControlsEx determina qual DLL dá suporte ao controle de edição. Se user32.dll der suporte ao controle de edição, o caractere de senha padrão será ASTERISK ('*', U+002A). Se a versão 6 do comctl32.dll der suporte ao controle de edição, o caractere padrão será BLACK CIRCLE ('●', U+25CF). Para obter mais informações sobre qual DLL e versão dão suporte aos controles comuns, consulte Shell e versões de controles comuns.

Esse método envia a mensagem EM_GETPASSWORDCHAR, que é descrita no SDK do Windows.

Exemplo

// Turn on the password mode.
m_myEdit.SetPasswordChar('*');
ASSERT(m_myEdit.GetStyle() & ES_PASSWORD);
ASSERT(m_myEdit.GetPasswordChar() == '*');

CEdit::GetRect

Chame essa função para obter o retângulo de formatação de um controle de edição.

void GetRect(LPRECT lpRect) const;

Parâmetros

lpRect
Aponta para a estrutura RECT que recebe o retângulo de formatação.

Comentários

O retângulo de formatação é o retângulo limitador do texto, que independe do tamanho da janela de controle de edição.

O retângulo de formatação de um controle de edição de várias linhas pode ser modificado pelas funções membro SetRect e SetRectNP.

Para mais informações, confira EM_GETRECT no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::LimitText.

CEdit::GetSel

Chame essa função para obter as posições de caractere inicial e final da seleção atual (se houver) em um controle de edição, usando o valor retornado ou os parâmetros.

DWORD GetSel() const;

void GetSel(
    int& nStartChar,
    int& nEndChar) const;

Parâmetros

nStartChar
Referência a um inteiro que receberá a posição do primeiro caractere na seleção atual.

nEndChar
Referência a um inteiro que receberá a posição do primeiro caractere não selecionado após o final da seleção atual.

Valor de Devolução

A versão que retorna um DWORD retorna um valor que contém a posição inicial na palavra de ordem inferior e a posição do primeiro caractere não selecionado após o fim da seleção na palavra de alta superior.

Comentários

Para mais informações, confira EM_GETSEL no SDK do Windows.

Exemplo

// Set the selection to be all characters after the current selection.
DWORD dwSel = m_myEdit.GetSel();
m_myEdit.SetSel(HIWORD(dwSel), -1);

CEdit::HideBalloonTip

Oculta qualquer dica de balão associada ao controle de edição atual.

BOOL HideBalloonTip();

Valor de Devolução

TRUE se o método for bem-sucedido; caso contrário, FALSE.

Comentários

Essa função envia a mensagem EM_HIDEBALLOONTIP, que é descrita no SDK do Windows.

CEdit::LimitText

Chame essa função para limitar o comprimento do texto que o usuário pode inserir em um controle de edição.

void LimitText(int nChars = 0);

Parâmetros

nChars
Especifica o comprimento (em TCHARs) do texto que o usuário pode inserir. Se esse parâmetro for 0, o comprimento do texto será definido como UINT_MAX bytes. Esse é o comportamento padrão.

Comentários

A alteração do limite de texto restringe apenas o texto que o usuário pode inserir. Ele não tem nenhum efeito sobre nenhum texto já no controle de edição, nem afeta o comprimento do texto copiado no controle de edição pela função membro SetWindowText em CWnd. Se um aplicativo usar a função SetWindowText para colocar mais texto em um controle de edição do que o especificado na chamada para LimitText, o usuário poderá excluir qualquer texto no controle de edição. No entanto, o limite de texto impedirá que o usuário substitua o texto existente por um novo texto, a menos que a exclusão da seleção atual faça com que o texto fique abaixo do limite de texto.

Observação

No Win32 (Windows NT e Windows 95/98), SetLimitText substitui essa função.

Para mais informações, confira EM_LIMITTEXT no SDK do Windows.

Exemplo

// Limit the number of characters to be the maximum number visible.

// Get the text metrics for the edit; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDC = m_myEdit.GetDC();
pDC->GetTextMetrics(&tm);
m_myEdit.ReleaseDC(pDC);

CRect r;
m_myEdit.GetRect(&r);
m_myEdit.LimitText(r.Width() / tm.tmAveCharWidth);

CEdit::LineFromChar

Chame essa função para recuperar o número de linha da linha que contém o índice de caracteres especificado.

int LineFromChar(int nIndex = -1) const;

Parâmetros

nIndex
Contém o valor de índice baseado em zero para o caractere desejado no texto do controle de edição ou contém -1. Se nIndex for -1, ele especifica a linha atual, ou seja, a linha que contém o sinal de interpolação.

Valor de Devolução

O número de linha baseado em zero da linha que contém o índice de caracteres especificado por nIndex. Se nIndex for -1, o número da linha que contém o primeiro caractere da seleção será retornado. Se não houver seleção, o número de linha atual será retornado.

Comentários

Um índice de caracteres é o número de caracteres desde o início do controle de edição.

Essa função membro só é usada por controles de edição de várias linhas.

Para mais informações, confira EM_LINEFROMCHAR no SDK do Windows.

Exemplo

// The index of the char to get information on.
int nIndex = 4;
CString strText;

m_myEdit.GetWindowText(strText);
strText = strText.Mid(nIndex, 1);

// Get the text extent of the character.
CDC *pDC = m_myEdit.GetDC();
CSize sz = pDC->GetTextExtent(strText);
m_myEdit.ReleaseDC(pDC);

CPoint pt = m_myEdit.PosFromChar(nIndex);

// Dump the index, character, line number, and character bounds.
TRACE(_T("nIndex = %d, character = %c, line = %d, bounds = ")
      _T("{%d, %d, %d, %d}\r\n"),
      nIndex, strText[0], m_myEdit.LineFromChar(nIndex),
      pt.x /* left */, pt.y /* top */,
      pt.x + sz.cx /* right */, pt.y + sz.cy /* bottom */);

CEdit::LineIndex

Chame essa função para recuperar o índice de caracteres de uma linha dentro de um controle de edição de várias linhas.

int LineIndex(int nLine = -1) const;

Parâmetros

nLine
Contém o valor de índice para a linha desejada no texto do controle de edição ou contém -1. Se nLine for -1, ele especifica a linha atual, ou seja, a linha que contém o sinal de interpolação.

Valor de Devolução

O índice de caracteres da linha especificada em nLine ou -1 se o número de linha especificado for maior que o número de linhas no controle de edição.

Comentários

O índice de caracteres é o número de caracteres desde o início do controle de edição até a linha especificada.

Essa função membro só é processada por controles de edição de várias linhas.

Para mais informações, confira EM_LINEINDEX no SDK do Windows.

Exemplo

// The string for replacing.
CString strString(_T("Hi, we're the replacements."));
int nBegin, nEnd;

// Replace the second line, if it exists, of the edit control
// with the text strString.
if ((nBegin = m_myEdit.LineIndex(1)) != -1)
{
   nEnd = nBegin + m_myEdit.LineLength(nBegin);
   m_myEdit.SetSel(nBegin, nEnd);
   m_myEdit.ReplaceSel(strString);
}

CEdit::LineLength

Recupera o comprimento de uma linha em um controle de edição.

int LineLength(int nLine = -1) const;

Parâmetros

nLine
O índice baseado em zero de um caractere na linha cujo comprimento deve ser recuperado. O valor padrão é -1.

Valor de Devolução

Para controles de edição de linha única, o valor retornado é o comprimento, em TCHARs, do texto no controle de edição.

Para controles de edição multilinha, o valor retornado é o comprimento, em TCHARs, da linha especificada pelo parâmetro nLine. Para texto ANSI, o comprimento é o número de bytes na linha; para texto Unicode, o comprimento é o número de caracteres na linha. O comprimento não inclui o caractere de retorno de carro no final da linha.

Se o parâmetro nLine for maior que o número de caracteres no controle, o valor retornado será zero.

Se o parâmetro nLine for -1, o valor retornado será o número de caracteres não selecionados nas linhas que contêm caracteres selecionados. Por exemplo, se a seleção se estender do quarto caractere de uma linha até o oitavo caractere do final da próxima linha, o valor retornado será 10. Ou seja, três caracteres na primeira linha e sete na próxima.

Para obter mais informações sobre o tipo TCHAR, consulte a linha TCHAR na tabela em Tipos de Dados do Windows.

Comentários

Esse método é compatível com a mensagem EM_LINELENGTH, que é descrita no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::LineIndex.

CEdit::LineScroll

Chame essa função para rolar o texto de um controle de edição de várias linhas.

void LineScroll(
    int nLines,
    int nChars = 0);

Parâmetros

nLines
Especifica o número de linhas a serem roladas verticalmente.

nChars
Especifica o número de posições de caractere a serem roladas horizontalmente. Esse valor será ignorado se o controle de edição tiver o estilo ES_RIGHT ou ES_CENTER.

Comentários

Essa função membro é processada somente por controles de edição de várias linhas.

O controle de edição não rola verticalmente após a última linha de texto no controle de edição. Se a linha atual mais o número de linhas especificadas por nLines exceder o número total de linhas no controle de edição, o valor será ajustado para que a última linha do controle de edição seja rolada até a parte superior da janela de controle de edição.

LineScroll pode ser usado para rolar horizontalmente após o último caractere de qualquer linha.

Para mais informações, confira EM_LINESCROLL no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::GetFirstVisibleLine.

CEdit::Paste

Chame essa função para inserir os dados da Área de Transferência em CEdit no ponto de inserção.

void Paste();

Comentários

Os dados serão inseridos somente se a área de transferência contiver dados no formato CF_TEXT.

Para mais informações, confira WM_PASTE no SDK do Windows.

Exemplo

// Replace all of the text with the text in the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Paste();

CEdit::PosFromChar

Chame essa função para obter a posição (canto superior esquerdo) de um determinado caractere dentro desse objeto CEdit.

CPoint PosFromChar(UINT nChar) const;

Parâmetros

nChar
O índice com base em zero do caractere especificado.

Valor de Devolução

As coordenadas do canto superior esquerdo do caractere especificado por nChar.

Comentários

O caractere é especificado fornecendo o valor de índice baseado em zero. Se nChar for maior que o índice do último caractere neste objeto CEdit, o valor retornado especifica as coordenadas da posição do caractere logo após o último caractere neste objeto CEdit.

Observação

Essa função membro está disponível a partir do Windows 95 e Windows NT 4.0.

Para mais informações, confira EM_POSFROMCHAR no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::LineFromChar.

CEdit::ReplaceSel

Chame essa função para substituir a seleção atual em um controle de edição pelo texto especificado por lpszNewText.

void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);

Parâmetros

lpszNewText
Aponta para uma cadeia de caracteres terminada em nulo que contém o texto de substituição.

bCanUndo
Para especificar que essa função pode ser desfeita, defina o valor desse parâmetro como TRUE. O valor padrão é FALSE.

Comentários

Substitui apenas uma parte do texto em um controle de edição. Para substituir todo o texto, use a função membro CWnd::SetWindowText.

Se não houver seleção atual, o texto de substituição será inserido no local do cursor atual.

Para mais informações, confira EM_REPLACESEL no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::LineIndex.

CEdit::SetCueBanner

Define o texto exibido como a indicação de texto ou dica, em um controle de edição quando o controle está vazio.

BOOL SetCueBanner(LPCWSTR lpszText);

BOOL SetCueBanner(
    LPCWSTR lpszText,
    BOOL fDrawWhenFocused = FALSE);

Parâmetros

lpszTexto
[in] Ponteiro para uma cadeia de caracteres que contém a indicação a ser exibida no controle de edição.

fDrawWhenFocused
[in] Se FALSE, a faixa de sinalização não será desenhada quando o usuário clicar no controle de edição e colocar o foco no controle.

Se TRUE, a faixa de sinalização é desenhada mesmo quando o controle tem foco. A faixa de sinalização desaparece quando o usuário começa a digitar no controle.

O valor padrão é FALSE.

Valor de Devolução

TRUE, se o método tiver êxito. Caso contrário, FALSE.

Comentários

Esse método envia a mensagem EM_SETCUEBANNER, que é descrita no SDK do Windows. Para obter mais informações, consulte a macro Edit_SetCueBannerTextFocused.

Exemplo

O exemplo a seguir demonstra o método CEdit::SetCueBanner.

m_cedit.SetCueBanner(_T("First, enter text here..."), TRUE);

CEdit::SetHandle

Chame essa função para definir o identificador para a memória local que será usada por um controle de edição de várias linhas.

void SetHandle(HLOCAL hBuffer);

Parâmetros

hBuffer
Contém um identificador para a memória local. Esse identificador deve ter sido criado por uma chamada anterior para a função LocalAlloc do Windows usando o sinalizador LMEM_MOVEABLE. Supõe-se que a memória contenha uma cadeia de caracteres terminada em nulo. Se esse não for o caso, o primeiro byte da memória alocada deverá ser definido como 0.

Comentários

O controle de edição usará esse buffer para armazenar o texto exibido no momento em vez de alocar seu próprio buffer.

Essa função membro é processada somente por controles de edição de várias linhas.

Antes que um aplicativo defina um novo identificador de memória, ele deve usar a função membro GetHandle para obter o identificador para o buffer de memória atual e liberar essa memória usando a função LocalFree do Windows.

SetHandle limpa o buffer de desfazer (a função membro CanUndo retorna 0) e o sinalizador de modificação interna (a função membro GetModify retorna 0). A janela do controle de edição é redesenhada.

Você pode usar essa função membro em um controle de edição de várias linhas em uma caixa de diálogo somente se tiver criado a caixa de diálogo com o sinalizador de estilo DS_LOCALEDIT definido.

Observação

GetHandle não funcionará com o Windows 95/98. Se você chamar GetHandle no Windows 95/98, ele retornará NULL. GetHandle funcionará conforme documentado em Windows NT, versões 3.51 e posteriores.

Para obter mais informações, consulte EM_SETHANDLE, LocalAlloc e LocalFree no SDK do Windows.

Exemplo

// The string to set in the edit control.
CString strString(_T("George Frideric"));

// Initialize the new local handle.
size_t cbSize = (strString.GetLength() + 1) * sizeof(TCHAR);
HLOCAL h = ::LocalAlloc(LHND, cbSize);
LPTSTR lpszText = (LPTSTR)::LocalLock(h);
_tcsncpy_s(lpszText, cbSize / sizeof(TCHAR), strString, _TRUNCATE);
::LocalUnlock(h);

// Free the current text handle of the edit control.
::LocalFree(m_myEdit.GetHandle());

// Set the new text handle.
m_myEdit.SetHandle(h);

CEdit::SetHighlight

Realça um intervalo de texto exibido no controle de edição atual.

void SetHighlight(
    int ichStart,
    int ichEnd);

Parâmetros

ichStart
[in] Índice baseado em zero do primeiro caractere no intervalo de texto a ser realçado.

ichEnd
[in] Índice baseado em zero do último caractere no intervalo de texto a ser realçado.

Comentários

Esse método envia a mensagem EM_SETHILITE, que é descrita no SDK do Windows. Esse método envia a mensagem EM_SETHILITE, que é descrita no SDK do Windows. SetHighlight e GetHighlight estão habilitados apenas para builds UNICODE.

CEdit::SetLimitText

Chame essa função membro para definir o limite de texto para este objeto CEdit.

void SetLimitText(UINT nMax);

Parâmetros

nMax
O novo limite de texto, em caracteres.

Comentários

O limite de texto é a quantidade máxima de texto, em caracteres, que o controle de edição pode aceitar.

A alteração do limite de texto restringe apenas o texto que o usuário pode inserir. Ele não tem nenhum efeito sobre nenhum texto já no controle de edição, nem afeta o comprimento do texto copiado no controle de edição pela função membro SetWindowText em CWnd. Se um aplicativo usar a função SetWindowText para colocar mais texto em um controle de edição do que o especificado na chamada para LimitText, o usuário poderá excluir qualquer texto no controle de edição. No entanto, o limite de texto impedirá que o usuário substitua o texto existente por um novo texto, a menos que a exclusão da seleção atual faça com que o texto fique abaixo do limite de texto.

Essa função substitui LimitText no Win32.

Para mais informações, confira EM_SETLIMITTEXT no SDK do Windows.

Exemplo

Veja o exemplo de CEditView::GetEditCtrl.

CEdit::SetMargins

Chame esse método para definir as margens esquerda e direita desse controle de edição.

void SetMargins(
    UINT nLeft,
    UINT nRight);

Parâmetros

nLeft
A largura da nova margem esquerda, em pixels.

nRight
A largura da nova margem direita, em pixels.

Comentários

Observação

Essa função membro está disponível a partir do Windows 95 e Windows NT 4.0.

Para mais informações, confira EM_SETMARGINS no SDK do Windows.

Exemplo

Veja o exemplo de CEditView::GetEditCtrl.

CEdit::SetModify

Chame essa função para definir ou limpar o sinalizador modificado para um controle de edição.

void SetModify(BOOL bModified = TRUE);

Parâmetros

bModified
Um valor TRUE indica que o texto foi modificado e um valor FALSE indica que ele não foi modificado. Por padrão, o sinalizador modificado é definido.

Comentários

O sinalizador modificado indica se o texto no controle de edição foi modificado ou não. Ele é definido automaticamente sempre que o usuário altera o texto. Seu valor pode ser recuperado com a função de membro GetModify.

Para mais informações, confira EM_SETMODIFY no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::GetModify.

CEdit::SetPasswordChar

Chame essa função para definir ou remover um caractere de senha exibido em um controle de edição quando o usuário digita texto.

void SetPasswordChar(TCHAR ch);

Parâmetros

Ch
Especifica o caractere a ser exibido em vez do caractere digitado pelo usuário. Se ch for 0, os caracteres reais digitados pelo usuário serão exibidos.

Comentários

Quando um caractere de senha é definido, esse caractere é exibido para cada caractere que o usuário digita.

Essa função membro não tem efeito em um controle de edição de várias linhas.

Quando a função membro SetPasswordChar for chamada, CEdit redesenhará todos os caracteres visíveis usando o caractere especificado por ch.

Se o controle de edição for criado com o estilo ES_PASSWORD, o caractere de senha padrão será definido como um asterisco ( *). Esse estilo será removido se SetPasswordChar for chamado com ch definido como 0.

Para mais informações, confira EM_SETPASSWORDCHAR no SDK do Windows.

Exemplo

// Turn off the password mode.
m_myEdit.SetPasswordChar(0);
ASSERT(!(m_myEdit.GetStyle() & ES_PASSWORD));

CEdit::SetReadOnly

Chama essa função para definir o estado somente leitura de um controle de edição.

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

Parâmetros

bReadOnly
Especifica se o estado somente leitura do controle de edição deve ser definido ou removido. Um valor TRUE define o estado como somente leitura; um valor FALSE define o estado como leitura/gravação.

Valor de Devolução

Diferente de zero se a operação for bem-sucedida ou 0 se ocorrer um erro.

Comentários

A configuração atual pode ser encontrada testando o sinalizador ES_READONLY no valor retornado de CWnd::GetStyle.

Para mais informações, confira EM_SETREADONLY no SDK do Windows.

Exemplo

// Set the edit control to be read-only.
m_myEdit.SetReadOnly(TRUE);
ASSERT(m_myEdit.GetStyle() & ES_READONLY);

CEdit::SetRect

Chame essa função para definir as dimensões de um retângulo usando as coordenadas especificadas.

void SetRect(LPCRECT lpRect);

Parâmetros

lpRect
Aponta para a estrutura RECT ou objeto CRect que especifica as novas dimensões do retângulo de formatação.

Comentários

Esse membro é processado somente por controles de edição de várias linhas.

Use SetRect para definir o retângulo de formatação de um controle de edição de várias linhas. O retângulo de formatação é o retângulo limitador do texto, que independe do tamanho da janela de controle de edição. Quando o controle de edição é criado pela primeira vez, o retângulo de formatação é igual à área do cliente da janela de controle de edição. Usando a função membro SetRect, um aplicativo pode tornar o retângulo de formatação maior ou menor que a janela de controle de edição.

Se o controle de edição não tiver uma barra de rolagem, o texto será recortado, não encapsulado, se o retângulo de formatação for maior que a janela. Se o controle de edição contiver uma borda, o retângulo de formatação será reduzido pelo tamanho da borda. Se você ajustar o retângulo retornado pela função membro GetRect, deverá remover o tamanho da borda antes de passar o retângulo para SetRect.

Quando SetRect é chamado, o texto do controle de edição também é reformatado e reproduzido.

Para mais informações, confira EM_SETRECT no SDK do Windows.

Exemplo

// Flag indicating whether to redraw the edit control.
bool fRedraw = TRUE;

CRect r;

m_myEdit.GetRect(&r);

// Reduce the formatting rect of the edit control by
// 10 pixels on each side.
if ((r.Width() > 20) && (r.Height() > 20))
{
   r.DeflateRect(10, 10);

   if (fRedraw)
      m_myEdit.SetRect(&r);
   else
      m_myEdit.SetRectNP(&r);
}

CEdit::SetRectNP

Chame essa função para definir o retângulo de formatação de um controle de edição de várias linhas.

void SetRectNP(LPCRECT lpRect);

Parâmetros

lpRect
Aponta para uma estrutura RECT ou objeto CRect que especifica as novas dimensões do retângulo.

Comentários

O retângulo de formatação é o retângulo limitador do texto, que independe do tamanho da janela de controle de edição.

SetRectNP é idêntico à função membro SetRect, exceto que a janela de controle de edição não é redesenhada.

Quando o controle de edição é criado pela primeira vez, o retângulo de formatação é igual à área do cliente da janela de controle de edição. Chamando a função membro SetRectNP, um aplicativo pode tornar o retângulo de formatação maior ou menor que a janela de controle de edição.

Se o controle de edição não tiver uma barra de rolagem, o texto será recortado, não encapsulado, se o retângulo de formatação for maior que a janela.

Esse membro é processado somente por controles de edição de várias linhas.

Para mais informações, confira EM_SETRECTNP no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::SetRect.

CEdit::SetSel

Chame essa função para selecionar um intervalo de caracteres em um controle de edição.

void SetSel(
    DWORD dwSelection,
    BOOL bNoScroll = FALSE);

void SetSel(
    int nStartChar,
    int nEndChar,
    BOOL bNoScroll = FALSE);

Parâmetros

dwSelection
Especifica a posição inicial na palavra de baixa ordem e a posição final na palavra de alta ordem. Se a palavra de baixa ordem for 0 e a palavra de alta ordem for -1, todo o texto no controle de edição será selecionado. Se a palavra de baixa ordem for -1, qualquer seleção atual será removida.

bNoScroll
Indica se o cursor deve ser rolado para exibição. Se FALSE, o cursor será rolado para exibição. Se TRUE, o cursor não será rolado para exibição.

nStartChar
Especifica a posição inicial. Se nStartChar for 0 e nEndChar for -1, todo o texto no controle de edição será selecionado. Se nStartChar for -1, qualquer seleção atual será removida.

nEndChar
Especifica a posição final.

Comentários

Para mais informações, confira EM_SETSEL no SDK do Windows.

Exemplo

Veja o exemplo de CEdit::GetSel.

CEdit::SetTabStops

Chame essa função para definir as paradas de tabulação em um controle de edição de várias linhas.

void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);

BOOL SetTabStops(
    int nTabStops,
    LPINT rgTabStops);

Parâmetros

cxEachStop
Especifica que as paradas de tabulação devem ser definidas em todas as unidades de diálogo cxEachStop.

nTabStops
Especifica o número de paradas de tabulação contidas em rgTabStops. Esse número deve ser maior que 1.

rgTabStops
Aponta para uma matriz de inteiros sem sinal especificando as paradas de tabulação em unidades de diálogo. Uma unidade de caixa de diálogo é uma distância horizontal ou vertical. Uma unidade de caixa de diálogo horizontal é igual a um quarto da unidade de largura base da caixa de diálogo atual e 1 unidade de diálogo vertical é igual a um oitavo da unidade de altura base da caixa de diálogo atual. As unidades base da caixa de diálogo são calculadas com base na altura e na largura da fonte atual do sistema. A função do Windows GetDialogBaseUnits retorna as unidades base da caixa de diálogo atual em pixels.

Valor de Devolução

Diferente de zero se as guias foram definidas; caso contrário, 0.

Comentários

Quando o texto é copiado para um controle de edição de várias linhas, qualquer caractere de tabulação no texto fará com que o espaço seja gerado até a próxima parada de tabulação.

Para definir paradas de tabulação para o tamanho padrão de 32 unidades de diálogo, chame a versão sem parâmetros dessa função de membro. Para definir paradas de tabulação para um tamanho diferente de 32, chame a versão com o parâmetro cxEachStop. Para definir paradas de tabulação para uma matriz de tamanhos, use a versão com dois parâmetros.

Essa função membro só é processada por controles de edição de várias linhas.

SetTabStops não redesenha automaticamente a janela de edição. Se você alterar as paradas de tabulação do texto já no controle de edição, chame CWnd::InvalidateRect para redesenhar a janela de edição.

Para obter mais informações, consulte EM_SETTABSTOPS e GetDialogBaseUnits no SDK do Windows.

Exemplo

Veja o exemplo de CEditView::SetTabStops.

CEdit::ShowBalloonTip

Exibe uma dica de balão associada ao controle de edição atual.

BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);

BOOL ShowBalloonTip(
    LPCWSTR lpszTitle,
    LPCWSTR lpszText,
    INT ttiIcon = TTI_NONE);

Parâmetros

pEditBalloonTip
[in] Ponteiro para uma estrutura EDITBALLOONTIP que descreve a dica de balão.

lpszTitle
[in] Ponteiro para uma cadeia de caracteres Unicode que contém o título da dica de balão.

lpszTexto
[in] Ponteiro para uma cadeia de caracteres Unicode que contém o texto da dica de balão.

ttiIcon
[in] Um INT que especifica o tipo de ícone a ser associado à dica de balão. O valor padrão é TTI_NONE. Para obter mais informações, consulte o membro ttiIcon da estrutura EDITBALLOONTIP.

Valor de Devolução

TRUE se o método for bem-sucedido; caso contrário, FALSE.

Comentários

Essa função envia a mensagem EM_SHOWBALLOONTIP, que é descrita no SDK do Windows. Para obter mais informações, consulte a macro Edit_ShowBalloonTip.

Exemplo

O primeiro exemplo de código define uma variável m_cedit, que é usada para acessar o controle de edição atual. Essa variável será usada no próximo exemplo.

public:
// Variable to access the edit control.
CEdit m_cedit;

O próximo exemplo de código exibe uma dica de balão para um controle de edição. O método CEdit::ShowBalloonTip especifica um título e um texto de dica de balão.

m_cedit.ShowBalloonTip(
    _T("CEdit Balloon Tip"), // title
    _T("Here's a tip!"),     // text
    TTI_INFO);

CEdit::Undo

Chame essa função para desfazer a última operação de controle de edição.

BOOL Undo();

Valor de Devolução

Para um controle de edição de linha única, o valor retornado é sempre diferente de zero. Para um controle de edição de várias linhas, o valor retornado será diferente de zero se a operação de desfazer for bem-sucedida ou 0 se a operação de desfazer falhar.

Comentários

Uma operação de desfazer também pode ser desfeita. Por exemplo, você pode restaurar o texto excluído com a primeira chamada para Undo. Desde que não haja uma operação de edição intervindo, você poderá remover o texto novamente com uma segunda chamada para Undo.

Para mais informações, confira EM_UNDO no SDK do Windows.

Exemplo

// Undo the last operation, if possible.
if (m_myEdit.CanUndo())
   m_myEdit.Undo();

Confira também

CALCDRIV de exemplo do MFC
CMNCTRL2 de exemplo do MFC
Classe CWnd
Gráfico da hierarquia
Classe CWnd
Classe CButton
Classe CComboBox
Classe CListBox
Classe CScrollBar
Classe CStatic
Classe CDialog