Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Fornece a funcionalidade de um controlo de edição do Windows.
Sintaxe
class CEdit : public CWnd
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CEdit::CEdit | Constrói um CEdit objeto de controlo. |
Métodos Públicos
| Nome | Description |
|---|---|
| CEdit::PossoFazer | Determina se uma operação de controlo de edição pode ser desfeita. |
| CEdit::CharFromPos | Recupera os índices de linha e caracteres para o carácter mais próximo de uma posição especificada. |
| CEdit::Limpo | Elimina (limpa) a seleção atual (se existir) no controlo de edição. |
| CEdit::Copiado | Copia a seleção atual (se existir) no controlo de edição para a Área de Transferência em formato CF_TEXT. |
| CEdit::Create | Cria o controlo de edição do Windows e anexa-o ao CEdit objeto. |
| CEdit::Cortar | Apaga (corta) a seleção atual (se existir) no controlo de edição e copia o texto eliminado para a Prancheta em formato CF_TEXT. |
| CEdit::EmptyUndoBuffer | Reinicia (limpa) a flag de desfazer de um controlo de edição. |
| CEdit::FmtLines | Ativa ou desativa a inclusão de caracteres suaves de quebra de linha dentro de um controlo de edição de múltiplas linhas. |
| CEdit::GetCueBanner | Recupera o texto que é exibido como sinal de texto, ou dica, num controlo de edição quando o controlo está vazio e não tem foco. |
| CEdit::GetFirstVisibleLine | Determina a linha visível mais alta num controlo de edição. |
| CEdit::GetHandle | Recupera um handle para a memória atualmente alocada para um controlo de edição de múltiplas linhas. |
| CEdit::GetHighlight | Obtém os índices dos caracteres iniciais e finais num intervalo de texto que é destacado no controlo de edição atual. |
| CEdit::GetLimitText | Obtém a quantidade máxima de texto que isto CEdit pode conter. |
| CEdit::GetLine | Recupera uma linha de texto a partir de um controlo de edição. |
| CEdit::GetLineCount | Recupera o número de linhas num controlo de edição de múltiplas linhas. |
| CEdit::GetMargins | Obtém as margens esquerda e direita para isto CEdit. |
| CEdit::GetModify | Determina se o conteúdo de um controlo de edição foi modificado. |
| CEdit::GetPasswordChar | Recupera a palavra-passe exibida num controlo de edição quando o utilizador insere texto. |
| CEdit::GetRect | Obtém o retângulo de formatação de um controle de edição. |
| CEdit::GetSel | Obtém as primeiras e últimas posições das personagens da seleção atual num controlo de edição. |
| CEdit::HideBalloonTip | Esconde qualquer ponta de balão associada ao controlo de edição atual. |
| CEdit::LimitText | Limita o comprimento do texto que o utilizador pode inserir num controlo de edição. |
| CEdit::LineFromChar | Recupera o número da linha que contém o índice de caracteres especificado. |
| CEdit::LineIndex | Recupera o índice de caracteres de uma linha dentro de um controlo de edição de múltiplas linhas. |
| CEdit::Comprimento da Linha | Recupera o comprimento de uma linha num controlo de edição. |
| CEdit::LineScroll | Desloca o texto de um controlo de edição de várias linhas. |
| CEdit::P aste | Insere os dados da Área de Transferência no controlo de edição na posição atual do cursor. Os dados só são inseridos se a Clipboard contiver dados em CF_TEXT formato. |
| CEdit::P osFromChar | Recupera as coordenadas do canto superior esquerdo de um índice de caracteres especificado. |
| CEdit::ReplaceSel | Substitui a seleção atual num controlo de edição pelo texto especificado. |
| CEdit::SetCueBanner | Define o texto que é exibido como sinal de texto, ou tip, num controlo de edição quando o controlo está vazio e não tem foco. |
| CEdit::SetHandle | Define o handle para a memória local que será usada por um controlo de edição de múltiplas linhas. |
| CEdit::Destaque do Conjunto | Destaca um intervalo de texto que é exibido no controlo de edição atual. |
| CEdit::SetLimitText | Define a quantidade máxima de texto que este CEdit pode conter. |
| CEdit::SetMargins | Define as margens esquerda e direita para este CEdit. |
| CEdit::SetModify | Define ou limpa o sinalizador de modificação para um controle de edição. |
| CEdit::SetPasswordChar | Define ou remove um carácter de palavra-passe exibido num controlo de edição quando o utilizador insere texto. |
| CEdit::SetReadOnly | Define o estado de apenas leitura de um controlo de edição. |
| CEdit::SetRect | Define o retângulo de formatação de um controlo de edição de múltiplas linhas e atualiza o controlo. |
| CEdit::SetRectNP | Define o retângulo de formatação de um controlo de edição de múltiplas linhas sem redesenhar a janela de controlo. |
| CEdit::SetSel | Seleciona um intervalo de caracteres em um controle de edição. |
| CEdit::SetTabStops | Define as paradas de tabulação num controlo de edição de múltiplas linhas. |
| CEdit::MostrarDicaBalãoDica | Apresenta uma ponta de balão associada ao controlo de edição atual. |
| CEdit::Desfazer | Reverte a última operação de controlo de edição. |
Observações
Um controlo de edição é uma janela retangular filha onde o utilizador pode inserir texto.
Podes criar um controlo de edição a partir de um template de diálogo ou diretamente no teu código. Em ambos os casos, primeiro chama o construtor CEdit para construir o CEdit objeto, depois chama a função Create member para criar o controlo de edição do Windows e anexá-lo ao CEdit objeto.
A construção pode ser um processo de uma etapa numa classe derivada de CEdit. Escreva um construtor para a classe derivada e chame Create a partir do próprio construtor.
CEdit herda funcionalidades significativas de CWnd. Para definir e recuperar texto de um CEdit objeto, use as CWnd funções membros SetWindowText e GetWindowText, que definem ou obtêm todo o conteúdo de um controlo de edição, mesmo que seja um controlo multilinha. As linhas de texto num controlo multilinha são separadas por sequências de caracteres '\r\n'. Além disso, se um controlo de edição for multilinha, obtenha e defina parte do texto do controlo chamando as CEdit funções membros GetLine, SetSel, GetSel e ReplaceSel.
Se quiser tratar mensagens de notificação do Windows enviadas por um controlo de edição para o seu pai (normalmente uma classe derivada de CDialog), adicione uma entrada de mapa de mensagens e uma função membro handler de mensagens à classe pai para cada mensagem.
Cada entrada de mapa de mensagem assume a seguinte forma:
ON_NOTIFICATION(id,memberFxn)
onde id especifica o ID da janela filho do controlo de edição que envia a notificação, e memberFxn é o nome da função membro pai que escreveu para tratar da notificação.
O protótipo da função dos pais é o seguinte:
afx_msg membro void Fxn ( );
Segue-se uma lista de potenciais entradas no mapa de mensagens e uma descrição dos casos em que seriam enviadas ao pai:
ON_EN_CHANGE O utilizador realizou uma ação que pode ter alterado texto num controlo de edição. Ao contrário da mensagem de notificação EN_UPDATE, esta notificação é enviada após o Windows atualizar o ecrã.
ON_EN_ERRSPACE O controlo de edição não consegue alocar memória suficiente para satisfazer um pedido específico.
ON_EN_HSCROLL O utilizador clica na barra de scroll horizontal de um controlo de edição. A janela pai é notificada antes que a tela seja atualizada.
ON_EN_KILLFOCUS O controlo de edição perde o foco de entrada.
ON_EN_MAXTEXT A inserção atual excedeu o número especificado de caracteres para o controlo de edição e foi truncada. Também é enviado quando um controlo de edição não tem o estilo ES_AUTOHSCROLL e o número de caracteres a inserir excede a largura do controlo de edição. Também é enviado quando um controlo de edição não tem o estilo ES_AUTOVSCROLL e o número total de linhas resultantes de uma inserção de texto excede a altura do controlo de edição.
ON_EN_SETFOCUS Enviado quando um controlo de edição recebe o foco de entrada.
ON_EN_UPDATE O controlo de edição está prestes a mostrar texto alterado. Enviado depois de o controlo ter formatado o texto, mas antes de o ecrã para que o tamanho da janela possa ser alterado, se necessário.
ON_EN_VSCROLL O utilizador clica na barra de scroll vertical de um controlo de edição. A janela pai é notificada antes que a tela seja atualizada.
Se criar um CEdit objeto dentro de uma caixa de diálogo, o CEdit objeto é automaticamente destruído quando o utilizador fecha a caixa de diálogo.
Se criar um CEdit objeto a partir de um recurso de diálogo usando o editor de diálogo, o CEdit objeto é automaticamente destruído quando o utilizador fecha a caixa de diálogo.
Se criares um CEdit objeto dentro de uma janela, podes também ter de o destruir. Se criares o CEdit objeto na pilha, ele é destruído automaticamente. Se criares o CEdit objeto no heap usando a new função, deves chamar delete o objeto para o destruir quando o utilizador terminar o controlo de edição do Windows. Se alocar alguma memória no CEdit objeto, sobrescrita o CEdit destruidor para eliminar as alocações.
Para modificar certos estilos num controlo de edição (como ES_READONLY), deve enviar mensagens específicas para o controlo em vez de usar o ModifyStyle. Veja Editar Estilos de Controlo no SDK do Windows.
Para mais informações sobre CEdit, veja Controlos.
Hierarquia de herança
CEdit
Requerimentos
Cabeçalho: afxwin.h
CEdit::PossoFazer
Chame esta função para determinar se a última operação de edição pode ser desfeita.
BOOL CanUndo() const;
Valor de retorno
Não nula se a última operação de edição puder ser desfeita por uma chamada à Undo função membro; 0 se não puder ser desfeita.
Observações
Para mais informações, consulte EM_CANUNDO no SDK do Windows.
Example
Veja o exemplo do CEdit::Undo.
CEdit::CEdit
Constrói um CEdit objeto.
CEdit();
Observações
Use Criar para construir o controlo de edição do Windows.
Example
// Declare a local CEdit object.
CEdit myEdit;
// Declare a dynamic CEdit object.
CEdit *pmyEdit = new CEdit;
CEdit::CharFromPos
Chame esta função para recuperar os índices de linha e caracteres baseados em zero do carácter mais próximo do ponto especificado neste CEdit controlo
int CharFromPos(CPoint pt) const;
Parâmetros
pt
As coordenadas de um ponto na área cliente deste CEdit objeto.
Valor de retorno
O índice de caracteres no WORD de ordem baixa e o índice de linha no WORD de ordem superior.
Observações
Observação
Esta função membro está disponível a partir do Windows 95 e Windows NT 4.0.
Para mais informações, consulte EM_CHARFROMPOS no SDK do Windows.
Example
// 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::Limpo
Chame esta função para eliminar (limpar) a seleção atual (se existir) no controlo de edição.
void Clear();
Observações
A eliminação realizada por Clear pode ser desfeita chamando a função Undo member.
Para eliminar a seleção atual e colocar o conteúdo eliminado na Área de Transferências, chame a função Cut member.
Para mais informações, consulte WM_CLEAR no SDK do Windows.
Example
// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();
CEdit::Copiado
Chame esta função para cometer a seleção atual (se existir) no controlo de edição para a Área de Transferência no formato CF_TEXT.
void Copy();
Observações
Para mais informações, consulte WM_COPY no SDK do Windows.
Example
// Copy all of the text to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Copy();
CEdit::Create
Cria o controlo de edição do Windows e anexa-o ao CEdit objeto.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parâmetros
dwStyle
Especifica o estilo do controlo de edição. Aplique qualquer combinação de estilos de edição ao controlo.
retângulo
Especifica o tamanho e a posição do controlo de edição. Pode ser um CRect objeto ou RECT estrutura.
pParentWnd
Especifica a janela pai do controlo de edição (normalmente um CDialog). Não pode ser NULL.
nID
Especifica o ID do controlo de edição.
Valor de retorno
Não nula se a inicialização for bem-sucedida; caso contrário, 0.
Observações
Constroem um CEdit objeto em dois passos. Primeiro, chama o CEdit construtor e depois chama Create, que cria o controlo de edição do Windows e o anexa ao CEdit objeto.
Quando Create é executado, o Windows envia as mensagens WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE e WM_GETMINMAXINFO para o controlo de edição.
Estas mensagens são tratadas por defeito pelas funções membros OnNcCreate, OnNcCalcSize, OnCreate e OnGetMinMaxInfo na CWnd classe base. Para estender o tratamento de mensagens por defeito, derive uma classe a partir de CEdit, adicione um mapa de mensagens à nova classe e sobrescrita as funções membros do manipulador de mensagens acima. Override OnCreate, por exemplo, para realizar a inicialização necessária para a nova classe.
Aplique os seguintes estilos de janela a um controlo de edição.
WS_CHILD Sempre
WS_VISIBLE Normalmente
WS_DISABLED Raramente
WS_GROUP Para agrupar os controlos
WS_TABSTOP Incluir controlo de edição na ordem de tabulação
Example
// 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::Cortar
Chame esta função para eliminar (cortar) a seleção atual (se existir) no controlo de edição e copiar o texto eliminado para a Área de Transferência em formato CF_TEXT.
void Cut();
Observações
A eliminação realizada por Cut pode ser desfeita chamando a função Undo member.
Para eliminar a seleção atual sem colocar o texto eliminado na Área de Transferências, chame a função Clear member.
Para mais informações, consulte WM_CUT no SDK do Windows.
Example
// Delete all of the text and copy it to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Cut();
CEdit::EmptyUndoBuffer
Chame esta função para reiniciar (limpar) a flag de desfazer de um controlo de edição.
void EmptyUndoBuffer();
Observações
O controlo de edição agora 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.
A flag de desfazer é automaticamente apagada sempre que as funções membros SetWindowText ou SetHandleCWnd são chamadas.
Para mais informações, consulte EM_EMPTYUNDOBUFFER no SDK do Windows.
Example
// Clear the undo buffer.
if (m_myEdit.CanUndo())
{
m_myEdit.EmptyUndoBuffer();
ASSERT(!m_myEdit.CanUndo());
}
CEdit::FmtLines
Chame esta função para ativar ou desativar a inclusão de caracteres de quebra de linha suave dentro de um controlo de edição de múltiplas linhas.
BOOL FmtLines(BOOL bAddEOL);
Parâmetros
bAddEOL
Especifica se caracteres de quebra de linha suave devem ser inseridos. Um valor de TRUE insere os caracteres; um valor de FALSE remove-os.
Valor de retorno
Diferente de zero, se ocorrer alguma formatação; caso contrário, 0.
Observações
Uma quebra suave de linha consiste em dois retornos de carro e um avanço de linha inserido no final de uma linha que é interrompida devido ao enrolamento de palavras. Uma interrupção de linha dura consiste num retorno de carro e numa alimentação de linha. Linhas que terminam com uma quebra de linha dura não são afetadas por FmtLines.
O Windows só responde se o CEdit objeto for um controlo de edição de múltiplas linhas.
FmtLines afeta apenas o buffer devolvido pelo GetHandle e o texto devolvido por WM_GETTEXT. Não tem impacto na visualização do texto dentro do controlo de edição.
Para mais informações, veja EM_FMTLINES no SDK do Windows.
Example
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 que é exibido como pista de texto, ou dica, num controlo de edição quando o controlo está vazio.
BOOL GetCueBanner(
LPWSTR lpszText,
int cchText) const;
CString GetCueBanner() const;
Parâmetros
lpszText
[fora] Um apontador para uma cadeia que contém o texto da pista.
cchTexto
[dentro] O número de caracteres que podem ser recebidos. Este número inclui o carácter NULL de terminação.
Valor de retorno
Para a primeira sobrecarga, TRUE se o método for bem-sucedido; caso contrário, FALSO.
Para a segunda sobrecarga, um CString que contém o texto da pista se o método for bem-sucedido; caso contrário, a cadeia vazia ("").
Observações
Este método envia a mensagem EM_GETCUEBANNER , que é descrita no SDK do Windows. Para mais informações, consulte a macro Edit_GetCueBannerText .
CEdit::GetFirstVisibleLine
Chame esta função para determinar a linha visível mais alta num controlo de edição.
int GetFirstVisibleLine() const;
Valor de retorno
O índice baseado em zero da linha visível mais alta. Para controlos de edição de linha única, o valor de retorno é 0.
Observações
Para mais informações, veja EM_GETFIRSTVISIBLELINE no SDK do Windows.
Example
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 esta função para recuperar um handle para a memória atualmente alocada para um controlo de edição de múltiplas linhas.
HLOCAL GetHandle() const;
Valor de retorno
Um handle de memória local que identifica o buffer que contém o conteúdo do controlo de edição. Se ocorrer um erro, como enviar a mensagem para um controlo de edição de linha única, o valor de retorno é 0.
Observações
O handle é um handle de memória local e pode ser usado por qualquer uma das funções de memória do Windows Local que tomem um handle de memória local como parâmetro.
GetHandle é processado apenas por controlos de edição de múltiplas linhas.
Solicita GetHandle um controlo de edição de múltiplas linhas numa caixa de diálogo apenas se a caixa de diálogo foi criada com a bandeira de estilo DS_LOCALEDIT definida. Se o estilo DS_LOCALEDIT não estiver definido, continuará a obter um valor de retorno diferente de zero, mas não poderá usar o valor devolvido.
Observação
GetHandle Não funciona com o Windows 95/98. Se ligares GetHandle ao Windows 95/98, ele devolverá o NULL.
GetHandle funcionará conforme documentado no Windows NT, versões 3.51 e posteriores.
Para mais informações, consulte EM_GETHANDLE no SDK do Windows.
Example
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 dos primeiros e últimos caracteres num intervalo de texto que está destacado no controlo de edição atual.
BOOL GetHighlight(
int* pichStart,
int* pichEnd) const;
Parâmetros
pichStart
[fora] Índice em base zero do primeiro carácter do intervalo de texto que é destacado.
pichEnd
[fora] Índice baseado em zero do último carácter do intervalo de texto que está destacado.
Valor de retorno
TRUE se este método for bem-sucedido; caso contrário, FALSO.
Observações
Este método envia a mensagem EM_GETHILITE , que é descrita no SDK do Windows. Ambos SetHighlight e GetHighlight estão atualmente ativados apenas para compilações UNICODE.
CEdit::GetLimitText
Chame esta função membro para obter o limite de texto deste CEdit objeto.
UINT GetLimitText() const;
Valor de retorno
O limite atual de texto, em TCHARs, para este CEdit objeto.
Observações
O limite de texto é a quantidade máxima de texto, em TCHARs, que o controlo de edição pode aceitar.
Observação
Esta função membro está disponível a partir do Windows 95 e Windows NT 4.0.
Para mais informações, consulte EM_GETLIMITTEXT no SDK do Windows.
Example
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 esta função para recuperar uma linha de texto de um controlo de edição e colocá-la 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 recuperar de um controlo de edição de múltiplas linhas. Os números das linhas são baseados em zero; um valor 0 especifica a primeira linha. Este parâmetro é ignorado por um controlo 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.
nMaxComprimento
Especifica o número máximo de caracteres TCHAR que podem ser copiados para o buffer.
GetLine coloca este valor na primeira palavra do lpszBuffer antes de fazer a chamada para o Windows.
Valor de retorno
O número de caracteres realmente copiado. O valor de retorno é 0 se o número de linha especificado por nIndex for maior do que o número de linhas no controlo de edição.
Observações
A linha copiada não contém um carácter de terminação nula.
Para mais informações, consulte EM_GETLINE no SDK do Windows.
Example
Veja o exemplo do CEdit::GetLineCount.
CEdit::GetLineCount
Chame esta função para recuperar o número de linhas num controlo de edição de múltiplas linhas.
int GetLineCount() const;
Valor de retorno
Um número inteiro contendo o número de linhas no controlo de edição de múltiplas linhas. Se nenhum texto tiver sido introduzido no controlo de edição, o valor de retorno é 1.
Observações
GetLineCount é processado apenas por controlos de edição de múltiplas linhas.
Para mais informações, consulte EM_GETLINECOUNT no SDK do Windows.
Example
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 esta função membro para recuperar as margens esquerda e direita deste controlo de edição.
DWORD GetMargins() const;
Valor de retorno
A largura da margem esquerda no WORD de ordem baixa e a largura da margem direita no WORD de ordem superior.
Observações
As margens são medidas em píxeis.
Observação
Esta função membro está disponível a partir do Windows 95 e Windows NT 4.0.
Para mais informações, consulte EM_GETMARGINS no SDK do Windows.
Example
Veja o exemplo de CEditView::GetEditCtrl.
CEdit::GetModify
Chame esta função para determinar se o conteúdo de um controlo de edição foi modificado.
BOOL GetModify() const;
Valor de retorno
Diferente de zero se o conteúdo do controlo de edição tiver sido modificado; 0 se mantiverem inalterados.
Observações
O Windows mantém um flag interno que indica se o conteúdo do controlo de edição foi alterado. Esta flag é apagada quando o controlo de edição é criado pela primeira vez e pode também ser apagada ao chamar a função membro SetModify .
Para mais informações, consulte EM_GETMODIFY no SDK do Windows.
Example
// Reset the modified state only if my edit has been modified.
if (m_myEdit.GetModify())
m_myEdit.SetModify(FALSE);
CEdit::GetPasswordChar
Chame esta função para recuperar a palavra-passe que é exibida num controlo de edição quando o utilizador insere texto.
TCHAR GetPasswordChar() const;
Valor de retorno
Especifica o carácter a ser exibido em vez do carácter que o utilizador escreveu. O valor de retorno é NULL se não existir nenhuma palavra-passe.
Observações
Se criares o controlo de edição com o estilo ES_PASSWORD, a DLL que suporta o controlo determina a palavra-passe padrão. O manifest ou método InitCommonControlsEx determina qual DLL suporta o controlo de edição. Se user32.dll suportar o controlo de edição, a palavra-passe padrão é ASTERISCO ('*', U+002A). Se comctl32.dll versão 6 suportar o controlo de edição, o carácter padrão é CÍRCULO PRETO ('●', U+25CF). Para mais informações sobre que DLL e versão suportam os controlos comuns, consulte Versões de Shell e Controlos Comuns.
Este método envia a mensagem EM_GETPASSWORDCHAR , que é descrita no SDK do Windows.
Example
// Turn on the password mode.
m_myEdit.SetPasswordChar('*');
ASSERT(m_myEdit.GetStyle() & ES_PASSWORD);
ASSERT(m_myEdit.GetPasswordChar() == '*');
CEdit::GetRect
Chame esta função para obter o retângulo de formatação de um controlo de edição.
void GetRect(LPRECT lpRect) const;
Parâmetros
lpRect
Aponta para a RECT estrutura que recebe o retângulo de formatação.
Observações
O retângulo de formatação é o retângulo limitante do texto, que é independente do tamanho da janela de controlo de edição.
O retângulo de formatação de um controlo de edição de múltiplas linhas pode ser modificado pelas funções membros SetRect e SetRectNP .
Para mais informações, consulte EM_GETRECT no SDK do Windows.
Example
Veja o exemplo do CEdit::LimitText.
CEdit::GetSel
Chame esta função para obter as posições iniciais e finais dos caracteres da seleção atual (se existirem) num controlo de edição, usando o valor de retorno 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 carácter na seleção atual.
nEndChar
Referência a um inteiro que receberá a posição do primeiro carácter não selecionado para além do final da seleção atual.
Valor de retorno
A versão que devolve um DWORD devolve um valor que contém a posição inicial na palavra de ordem baixa e a posição do primeiro carácter não selecionado após o fim da seleção na palavra de ordem superior.
Observações
Para mais informações, consulte EM_GETSEL no SDK do Windows.
Example
// Set the selection to be all characters after the current selection.
DWORD dwSel = m_myEdit.GetSel();
m_myEdit.SetSel(HIWORD(dwSel), -1);
CEdit::HideBalloonTip
Esconde qualquer ponta de balão associada ao controlo de edição atual.
BOOL HideBalloonTip();
Valor de retorno
TRUE se este método for bem-sucedido; caso contrário, FALSO.
Observações
Esta função envia a mensagem EM_HIDEBALLOONTIP , que é descrita no SDK do Windows.
CEdit::LimitText
Chame esta função para limitar o comprimento do texto que o utilizador pode inserir num controlo de edição.
void LimitText(int nChars = 0);
Parâmetros
nChars
Especifica o comprimento (em TCHARs) do texto que o utilizador pode inserir. Se este parâmetro for 0, o comprimento do texto é definido para UINT_MAX bytes. Este é o comportamento padrão.
Observações
Alterar o limite de texto restringe apenas o texto que o utilizador pode inserir. Não tem efeito em nenhum texto já no controlo de edição, nem afeta o comprimento do texto copiado para o controlo de edição pela função membro SetWindowText em CWnd. Se uma aplicação usar a SetWindowText função para colocar mais texto num controlo de edição do que o especificado na chamada para LimitText, o utilizador pode eliminar qualquer texto dentro do controlo de edição. No entanto, o limite de texto impedirá o utilizador de substituir o texto existente por texto novo, a menos que eliminar a 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), o SetLimitText substitui esta função.
Para mais informações, veja EM_LIMITTEXT no SDK do Windows.
Example
// 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 esta 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 do índice baseado em zero para o carácter desejado no texto do controlo de edição, ou contém -1. Se nIndex for -1, especifica a linha atual, ou seja, a linha que contém o carèt.
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 carácter da seleção é devolvido. Se não houver seleção, o número da linha atual é devolvido.
Observações
Um índice de caracteres é o número de caracteres desde o início do controlo de edição.
Esta função membro é usada apenas por controlos de edição de múltiplas linhas.
Para mais informações, consulte EM_LINEFROMCHAR no SDK do Windows.
Example
// 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 esta função para recuperar o índice de caracteres de uma linha dentro de um controlo de edição de múltiplas linhas.
int LineIndex(int nLine = -1) const;
Parâmetros
nLine
Contém o valor de índice para a linha desejada no texto do controlo de edição, ou contém -1. Se nLine for -1, especifica a linha atual, ou seja, a linha que contém o carète.
Valor de retorno
O índice de caracteres da linha especificado em nLine ou -1 se o número de linha especificado for maior do que o número de linhas no controlo de edição.
Observações
O índice de caracteres é o número de caracteres desde o início do controlo de edição até à linha especificada.
Esta função membro é processada apenas por controlos de edição de múltiplas linhas.
Para mais informações, consulte EM_LINEINDEX no SDK do Windows.
Example
// 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::Comprimento da Linha
Recupera o comprimento de uma linha num controlo de edição.
int LineLength(int nLine = -1) const;
Parâmetros
nLine
O índice base zero de um carácter na linha cujo comprimento deve ser recuperado. O valor padrão é -1.
Valor de retorno
Para controlos de edição de linha única, o valor de retorno é o comprimento, em TCHARs, do texto no controlo de edição.
Para controlos de edição multilinha, o valor de retorno é 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 carácter de regresso de carruagens no final da linha.
Se o parâmetro nLine for maior do que o número de caracteres no controlo, o valor de retorno é zero.
Se o parâmetro nLine for -1, o valor de retorno é 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 carácter de uma linha até ao oitavo carácter do final da linha seguinte, o valor de retorno é 10. Ou seja, três personagens na primeira linha e sete na seguinte.
Para mais informações sobre o tipo TCHAR, consulte a linha TCHAR na tabela em Tipos de Dados do Windows.
Observações
Este método é suportado pela mensagem EM_LINELENGTH , que é descrita no SDK do Windows.
Example
Veja o exemplo do CEdit::LineIndex.
CEdit::LineScroll
Chame esta função para deslocar o texto de um controlo de edição de múltiplas linhas.
void LineScroll(
int nLines,
int nChars = 0);
Parâmetros
nLines
Especifica o número de linhas a deslocar verticalmente.
nChars
Especifica o número de posições de caracteres a deslocar horizontalmente. Este valor é ignorado se o controlo de edição tiver o estilo ES_RIGHT ou ES_CENTER.
Observações
Esta função membro é processada apenas por controlos de edição de múltiplas linhas.
O controlo de edição não desloca verticalmente para além da última linha de texto no controlo de edição. Se a linha atual mais o número de linhas especificado por nLinhas exceder o número total de linhas no controlo de edição, o valor é ajustado para que a última linha do controlo de edição seja deslocada até ao topo da janela de controlo de edição.
LineScroll pode ser usado para deslizar horizontalmente para além do último carácter de qualquer linha.
Para mais informações, consulte EM_LINESCROLL no SDK do Windows.
Example
Veja o exemplo de CEdit::GetFirstVisibleLine.
CEdit::P aste
Chame esta função para inserir os dados da Área de Transferência no CEdit ponto de inserção.
void Paste();
Observações
Os dados só são inseridos se a Clipboard contiver dados em CF_TEXT formato.
Para mais informações, consulte WM_PASTE no SDK do Windows.
Example
// Replace all of the text with the text in the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Paste();
CEdit::P osFromChar
Chame esta função para obter a posição (canto superior esquerdo) de um dado carácter dentro deste CEdit objeto.
CPoint PosFromChar(UINT nChar) const;
Parâmetros
nChar
O índice baseado em zero do carácter especificado.
Valor de retorno
As coordenadas do canto superior esquerdo do carácter especificadas por nChar.
Observações
O carácter é especificado indicando o seu valor de índice baseado em zero. Se nChar for maior do que o índice do último carácter neste CEdit objeto, o valor de retorno especifica as coordenadas da posição do carácter logo após o último carácter neste CEdit objeto.
Observação
Esta função membro está disponível a partir do Windows 95 e Windows NT 4.0.
Para mais informações, consulte EM_POSFROMCHAR no SDK do Windows.
Example
Veja o exemplo de CEdit::LineFromChar.
CEdit::ReplaceSel
Chame esta função para substituir a seleção atual num controlo de edição pelo texto especificado por lpszNewText.
void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);
Parâmetros
lpszNewText
Aponta para uma cadeia terminada nula contendo o texto de substituição.
bCanUndo
Para especificar que esta função pode ser desfeita, defina o valor deste parâmetro para VERDADEIRO . O valor padrão é FALSE.
Observações
Substitui apenas uma parte do texto num controlo de edição. Se quiseres substituir todo o texto, usa a função membro CWnd::SetWindowText .
Se não houver seleção atual, o texto de substituição é inserido na posição atual do cursor.
Para mais informações, consulte EM_REPLACESEL no SDK do Windows.
Example
Veja o exemplo do CEdit::LineIndex.
CEdit::SetCueBanner
Define o texto que é exibido como indicação de texto, ou dica, num controlo de edição quando o controlo está vazio.
BOOL SetCueBanner(LPCWSTR lpszText);
BOOL SetCueBanner(
LPCWSTR lpszText,
BOOL fDrawWhenFocused = FALSE);
Parâmetros
lpszText
[dentro] Apontador para uma string que contém a pista a mostrar no controlo de edição.
fDrawWhenFocused
[dentro] Se for FALSE, o banner de indicação não é desenhado quando o utilizador clica no controlo de edição e dá o foco ao controlo.
Se TRUE, o banner de comando é desenhado mesmo quando o controlo tem foco. O banner de sinal desaparece quando o utilizador começa a digitar o controlo.
O valor padrão é FALSE.
Valor de retorno
TRUE se o método for bem-sucedido; caso contrário, FALSO.
Observações
Este método envia a mensagem EM_SETCUEBANNER , que é descrita no SDK do Windows. Para mais informações, consulte a macro Edit_SetCueBannerTextFocused .
Example
O exemplo seguinte demonstra o método CEdit::SetCueBanner .
m_cedit.SetCueBanner(_T("First, enter text here..."), TRUE);
CEdit::SetHandle
Chame esta função para definir o handle para a memória local que será usada por um controlo de edição de múltiplas linhas.
void SetHandle(HLOCAL hBuffer);
Parâmetros
hBuffer
Contém um handle para a memória local. Este handle deve ter sido criado por uma chamada anterior à função LocalAlloc Windows usando o flag LMEM_MOVEABLE. Assume-se que a memória contém uma cadeia terminada por nulo. Se tal não for o caso, o primeiro byte da memória alocada deve ser definido para 0.
Observações
O controlo de edição usará então este buffer para armazenar o texto atualmente apresentado em vez de alocar o seu próprio buffer.
Esta função membro é processada apenas por controlos de edição de múltiplas linhas.
Antes de uma aplicação definir um novo handle de memória, deve usar a função membro GetHandle para levar o handle ao buffer de memória atual e libertar essa memória usando a LocalFree função Windows.
SetHandle limpa o buffer de desfazer (a função membro CanUndo devolve então 0) e a flag de modificação interna (a função membro GetModify devolve então 0). A janela de controlo de edição é redesenhada.
Pode usar esta função de membro num controlo de edição de múltiplas linhas numa caixa de diálogo apenas se tiver criado a caixa de diálogo com a flag de estilo DS_LOCALEDIT definida.
Observação
GetHandle Não funciona com o Windows 95/98. Se ligares GetHandle ao Windows 95/98, ele devolverá o NULL.
GetHandle funcionará conforme documentado no Windows NT, versões 3.51 e posteriores.
Para mais informações, consulte EM_SETHANDLE, LocalAlloc e LocalFree no SDK do Windows.
Example
// 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::Destaque do Conjunto
Destaca um intervalo de texto que é exibido no controlo de edição atual.
void SetHighlight(
int ichStart,
int ichEnd);
Parâmetros
ichStart
[dentro] Índice em base zero do primeiro carácter do intervalo de texto a destacar.
ichEnd
[dentro] Índice em base zero do último carácter no intervalo de texto a destacar.
Observações
Este método envia a mensagem EM_SETHILITE , que é descrita no SDK do Windows. Este método envia a mensagem EM_SETHILITE , que é descrita no SDK do Windows. Tanto SetHighlight como GetHighlight estão ativados apenas para compilações UNICODE.
CEdit::SetLimitText
Chame esta função membro para definir o limite de texto deste CEdit objeto.
void SetLimitText(UINT nMax);
Parâmetros
nMax
O novo limite de texto, em caracteres.
Observações
O limite de texto é a quantidade máxima de texto, em caracteres, que o controlo de edição pode aceitar.
Alterar o limite de texto restringe apenas o texto que o utilizador pode inserir. Não tem efeito em nenhum texto já no controlo de edição, nem afeta o comprimento do texto copiado para o controlo de edição pela função membro SetWindowText em CWnd. Se uma aplicação usar a SetWindowText função para colocar mais texto num controlo de edição do que o especificado na chamada para LimitText, o utilizador pode eliminar qualquer texto dentro do controlo de edição. No entanto, o limite de texto impedirá o utilizador de substituir o texto existente por texto novo, a menos que eliminar a seleção atual faça com que o texto fique abaixo do limite de texto.
Esta função substitui o LimitText no Win32.
Para mais informações, consulte EM_SETLIMITTEXT no SDK do Windows.
Example
Veja o exemplo de CEditView::GetEditCtrl.
CEdit::SetMargins
Chame este método para definir as margens esquerda e direita deste controlo de edição.
void SetMargins(
UINT nLeft,
UINT nRight);
Parâmetros
nEsquerda
A largura da nova margem esquerda, em pixels.
nCerto
A largura da nova margem direita, em pixels.
Observações
Observação
Esta função membro está disponível a partir do Windows 95 e Windows NT 4.0.
Para mais informações, consulte EM_SETMARGINS no SDK do Windows.
Example
Veja o exemplo de CEditView::GetEditCtrl.
CEdit::SetModify
Chame esta função para definir ou limpar a flag modificada para um controlo de edição.
void SetModify(BOOL bModified = TRUE);
Parâmetros
bModified
Um valor de TRUE indica que o texto foi modificado, e um valor de FALSE indica que não foi modificado. Por defeito, a bandeira modificada está definida.
Observações
A flag modificada indica se o texto dentro do controlo de edição foi ou não modificado. É automaticamente definido sempre que o utilizador altera o texto. O seu valor pode ser recuperado com a função membro GetModify .
Para mais informações, consulte EM_SETMODIFY no SDK do Windows.
Example
Veja o exemplo para CEdit::GetModify.
CEdit::SetPasswordChar
Chame esta função para definir ou remover um carácter de palavra-passe exibido num controlo de edição quando o utilizador escreve texto.
void SetPasswordChar(TCHAR ch);
Parâmetros
ch
Especifica o carácter a ser exibido em vez do carácter digitado pelo utilizador. Se ch for 0, os caracteres reais digitados pelo utilizador são exibidos.
Observações
Quando um carácter passwords é definido, esse carácter é exibido para cada carácter que o utilizador escreve.
Esta função membro não tem efeito sobre um controlo de edição de múltiplas linhas.
Quando a SetPasswordChar função membro é chamada, CEdit irá redesenhar todos os caracteres visíveis usando o carácter especificado por ch.
Se o controlo de edição for criado com o estilo ES_PASSWORD , a palavra-passe padrão é definida com um asterisco ( *). Este estilo é removido se SetPasswordChar for chamado com ch definido em 0.
Para mais informações, consulte EM_SETPASSWORDCHAR no SDK do Windows.
Example
// Turn off the password mode.
m_myEdit.SetPasswordChar(0);
ASSERT(!(m_myEdit.GetStyle() & ES_PASSWORD));
CEdit::SetReadOnly
Chama esta função para definir o estado de apenas leitura de um controlo de edição.
BOOL SetReadOnly(BOOL bReadOnly = TRUE);
Parâmetros
bReadOnly
Especifica se deve definir ou remover o estado de apenas leitura do controlo de edição. Um valor de TRUE define o estado para apenas leitura; um valor de FALSE define o estado a ler/escrever.
Valor de retorno
Não nulo se a operação for bem-sucedida, ou 0 se ocorrer um erro.
Observações
A definição atual pode ser encontrada testando a flag ES_READONLY no valor de retorno de CWnd::GetStyle.
Para mais informações, veja EM_SETREADONLY no SDK do Windows.
Example
// Set the edit control to be read-only.
m_myEdit.SetReadOnly(TRUE);
ASSERT(m_myEdit.GetStyle() & ES_READONLY);
CEdit::SetRect
Chame esta 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 RECT estrutura ou CRect objeto que especifica as novas dimensões do retângulo de formatação.
Observações
Este elemento é processado apenas por controlos de edição de múltiplas linhas.
Use SetRect para definir o retângulo de formatação de um controlo de edição de várias linhas. O retângulo de formatação é o retângulo limitante do texto, que é independente do tamanho da janela de controlo de edição. Quando o controlo de edição é criado pela primeira vez, o retângulo de formatação é igual à área do cliente da janela de controlo de edição. Ao usar a SetRect função membro, uma aplicação pode tornar o retângulo de formatação maior ou menor do que a janela de controlo de edição.
Se o controlo de edição não tiver barra de deslocamento, o texto será cortado, não enrolado, se o retângulo de formatação for maior do que a janela. Se o controlo de edição contiver uma borda, o retângulo de formatação é reduzido pelo tamanho da borda. Se ajustar o retângulo devolvido pela GetRect função elemento, deve remover o tamanho da borda antes de passar o retângulo para SetRect.
Quando SetRect é chamado, o texto do controlo de edição também é reformatado e reapresentado.
Para mais informações, consulte EM_SETRECT no SDK do Windows.
Example
// 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 esta função para definir o retângulo de formatação de um controlo de edição de múltiplas linhas.
void SetRectNP(LPCRECT lpRect);
Parâmetros
lpRect
Aponta para uma RECT estrutura ou CRect objeto que especifica as novas dimensões do retângulo.
Observações
O retângulo de formatação é o retângulo limitante do texto, que é independente do tamanho da janela de controlo de edição.
SetRectNP é idêntico à SetRect função membro, exceto que a janela de controlo de edição não é redesenhada.
Quando o controlo de edição é criado pela primeira vez, o retângulo de formatação é igual à área do cliente da janela de controlo de edição. Ao chamar a SetRectNP função membro, uma aplicação pode tornar o retângulo de formatação maior ou menor do que a janela de controlo de edição.
Se o controlo de edição não tiver barra de deslocamento, o texto será cortado, não enrolado, se o retângulo de formatação for maior do que a janela.
Este elemento é processado apenas por controlos de edição de múltiplas linhas.
Para mais informações, consulte EM_SETRECTNP no SDK do Windows.
Example
Veja o exemplo de CEdit::SetRect.
CEdit::SetSel
Chame esta função para selecionar um intervalo de caracteres num controlo 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 ordem baixa e a posição final na palavra de ordem superior. Se a palavra de ordem baixa for 0 e a palavra de ordem alta for -1, todo o texto no controlo de edição é selecionado. Se a palavra de ordem baixa for -1, qualquer seleção atual é removida.
bNoScroll
Indica se o caret deve ser deslocado para a vista. Se FALSE, o caret é deslocado para a vista. Se for TRUE, o caret não aparece na vista.
nStartChar
Especifica a posição inicial. Se nStartChar for 0 e nEndChar for -1, todo o texto no controlo de edição é selecionado. Se nStartChar for -1, qualquer seleção atual é removida.
nEndChar
Especifica a posição final.
Observações
Para mais informações, consulte EM_SETSEL no SDK do Windows.
Example
Veja o exemplo do CEdit::GetSel.
CEdit::SetTabStops
Chame esta função para definir as paradas de tabulação num controlo de edição de múltiplas linhas.
void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);
BOOL SetTabStops(
int nTabStops,
LPINT rgTabStops);
Parâmetros
cxEachStop
Especifica que os tabs stop devem ser definidos em todas as unidades de diálogo cxEachStop .
nTabStops
Especifica o número de paradas de tabulação contidas em rgTabStops. Este número deve ser superior a 1.
rgTabStops
Aponta para um array de inteiros não assinados que especificam as paradas de tabulação nas unidades de diálogo. Uma unidade de diálogo é uma distância horizontal ou vertical. Uma unidade horizontal de diálogo é igual a um quarto da unidade atual de largura da base de diálogo, e 1 unidade vertical de diálogo equivale a um oitavo da unidade atual de altura da base de diálogo. As unidades base de diálogo são calculadas com base na altura e largura da fonte atual do sistema. A GetDialogBaseUnits função Windows devolve as unidades base de diálogo atuais em pixels.
Valor de retorno
Diferente de zero se as tabulações estivessem definidas; caso contrário, 0.
Observações
Quando o texto é copiado para um controlo de edição de várias linhas, qualquer carácter de tabulação no texto fará com que seja gerado espaço até à próxima parada de tabulação.
Para definir os tabs stops para o tamanho padrão de 32 unidades de diálogo, chame a versão sem parâmetros desta função membro. Para definir os tabs stops para um tamanho diferente de 32, chame a versão com o parâmetro cxEachStop . Para definir os tabs stops para um array de tamanhos, use a versão com dois parâmetros.
Esta função membro é processada apenas por controlos de edição de múltiplas linhas.
SetTabStops não redesenha automaticamente a janela de edição. Se mudares os tabs stops para texto já no controlo de edição, liga para CWnd::InvalidateRect para redesenhar a janela de edição.
Para mais informações, consulte EM_SETTABSTOPS e GetDialogBaseUnits no SDK do Windows.
Example
Veja o exemplo de CEditView::SetTabStops.
CEdit::MostrarDicaBalãoDica
Apresenta uma ponta de balão associada ao controlo de edição atual.
BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);
BOOL ShowBalloonTip(
LPCWSTR lpszTitle,
LPCWSTR lpszText,
INT ttiIcon = TTI_NONE);
Parâmetros
pEditBalloonTip
[dentro] Aponta para uma estrutura EDITBALLOONTIP que descreve a ponta do balão.
lpszTítulo
[dentro] Apontador para uma string Unicode que contém o título da ponta do balão.
lpszText
[dentro] Apontador para uma cadeia Unicode que contém o texto da ponta do balão.
ttiIcon
[dentro] Uma INT que especifica o tipo de ícone a associar à ponta do balão. O valor padrão é TTI_NONE. Para mais informações, consulte o ttiIcon membro da estrutura EDITBALLOONTIP .
Valor de retorno
TRUE se este método for bem-sucedido; caso contrário, FALSO.
Observações
Esta função envia a mensagem EM_SHOWBALLOONTIP , que é descrita no SDK do Windows. Para mais informações, consulte o Edit_ShowBalloonTip macro.
Example
O primeiro exemplo de código define uma variável, m_cedit, que é usada para aceder ao controlo de edição atual. Esta variável é usada no exemplo seguinte.
public:
// Variable to access the edit control.
CEdit m_cedit;
O próximo exemplo de código mostra uma ponta de balão para um controlo de edição. O método CEdit::ShowBalloonTip especifica um título e o texto da dica do balão.
m_cedit.ShowBalloonTip(
_T("CEdit Balloon Tip"), // title
_T("Here's a tip!"), // text
TTI_INFO);
CEdit::Desfazer
Chame esta função para desfazer a última operação de controlo de edição.
BOOL Undo();
Valor de retorno
Para um controlo de edição de linha única, o valor de retorno é sempre diferente de zero. Para um controlo de edição de múltiplas linhas, o valor de retorno é diferente de zero se a operação de desfazer for bem-sucedida, ou 0 se a operação falhar.
Observações
Uma operação de desfazer também pode ser desfeita. Por exemplo, pode restaurar texto eliminado com a primeira chamada para Undo. Desde que não haja nenhuma operação de edição intermédia, pode remover o texto novamente com uma segunda chamada para Undo.
Para mais informações, veja EM_UNDO no SDK do Windows.
Example
// Undo the last operation, if possible.
if (m_myEdit.CanUndo())
m_myEdit.Undo();
Consulte também
Exemplo MFC CALCDRIV
Exemplo MFC CMNCTRL2
Classe CWnd
Gráfico de Hierarquia
Classe CWnd
Classe CButton
Classe CComboBox
Classe CListBox
Classe CScrollBar
Classe CStatic
Classe CDialog