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 CWnd
SetWindowText 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 CEdit
GetLine, 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
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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 retorno
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