CEdit (clase)
Proporciona la funcionalidad de un control de edición de Windows.
Sintaxis
class CEdit : public CWnd
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CEdit::CEdit | Construye un objeto de control CEdit . |
Métodos públicos
Nombre | Descripción |
---|---|
CEdit::CanUndo | Determina si se puede deshacer una operación de control de edición. |
CEdit::CharFromPos | Recupera los índices de líneas y caracteres del carácter más cercano a una posición especificada. |
CEdit::Clear | Elimina (borra) la selección actual (si la hubiera) del control de edición. |
CEdit::Copy | Copia la selección actual (si la hubiera) del control de edición en el Portapapeles en formato CF_TEXT. |
CEdit::Create | Crea el control de edición de Windows y lo adjunta al objeto CEdit . |
CEdit::Cut | Elimina (corta) la selección actual (si la hubiera) del control de edición y copia el texto eliminado en el Portapapeles en formato CF_TEXT. |
CEdit::EmptyUndoBuffer | Restablece (borra) la marca de deshacer de un control de edición. |
CEdit::FmtLines | Activa o desactiva la inclusión de caracteres de salto de línea automático dentro de un control de edición de varias líneas. |
CEdit::GetCueBanner | Recupera el texto que se muestra como indicación de texto, o sugerencia, en un control de edición cuando el control está vacío y no tiene el foco. |
CEdit::GetFirstVisibleLine | Determina la línea visible situada más arriba de un control de edición. |
CEdit::GetHandle | Recupera un identificador de la memoria asignada actualmente a un control de edición de varias líneas. |
CEdit::GetHighlight | Obtiene los índices de los caracteres iniciales y finales de un rango de texto resaltado del control de edición actual. |
CEdit::GetLimitText | Obtiene la cantidad máxima de texto que CEdit puede contener. |
CEdit::GetLine | Recupera una línea de texto de un control de edición. |
CEdit::GetLineCount | Recupera el número de líneas de un control de edición de varias líneas. |
CEdit::GetMargins | Obtiene los márgenes izquierdo y derecho de CEdit . |
CEdit::GetModify | Determina si se ha modificado el contenido de un control de edición. |
CEdit::GetPasswordChar | Recupera el carácter de contraseña que se muestra en un control de edición cuando el usuario escribe texto. |
CEdit::GetRect | Obtiene el rectángulo de formato de un control de edición. |
CEdit::GetSel | Obtiene las posiciones de primer y último carácter de la selección actual de un control de edición. |
CEdit::HideBalloonTip | Oculta cualquier globo de sugerencias asociado al control de edición actual. |
CEdit::LimitText | Limita la longitud del texto que el usuario puede escribir en un control de edición. |
CEdit::LineFromChar | Recupera el número de línea de la línea que contiene el índice de caracteres especificado. |
CEdit::LineIndex | Recupera el índice de caracteres de una línea dentro de un control de edición de varias líneas. |
CEdit::LineLength | Recupera la longitud de una línea de un control de edición. |
CEdit::LineScroll | Desplaza el texto de un control de edición de varias líneas. |
CEdit::Paste | Inserta los datos del portapapeles al control de edición en la posición actual del cursor. Los datos solo se insertan si el Portapapeles contiene datos en formato CF_TEXT. |
CEdit::PosFromChar | Recupera las coordenadas de la esquina superior izquierda de un índice de caracteres especificado. |
CEdit::ReplaceSel | Reemplaza la selección actual de un control de edición por el texto especificado. |
CEdit::SetCueBanner | Establece el texto que se muestra como indicación de texto, o sugerencia, en un control de edición cuando el control está vacío y no tiene el foco. |
CEdit::SetHandle | Establece el identificador de la memoria local que se va a usar en un control de edición de varias líneas. |
CEdit::SetHighlight | Resalta un rango de texto que se muestra en el control de edición actual. |
CEdit::SetLimitText | Establece la cantidad máxima de texto que CEdit puede contener. |
CEdit::SetMargins | Establece los márgenes izquierdo y derecho de CEdit . |
CEdit::SetModify | Establece o borra la marca de modificación de un control de edición. |
CEdit::SetPasswordChar | Establece o quita el carácter de contraseña que se muestra en un control de edición cuando el usuario escribe texto. |
CEdit::SetReadOnly | Establece el estado de solo lectura de un control de edición. |
CEdit::SetRect | Establece el rectángulo de formato de un control de edición de varias líneas y actualiza el control. |
CEdit::SetRectNP | Establece el rectángulo de formato de un control de edición de varias líneas sin volver a dibujar la ventana de control. |
CEdit::SetSel | Selecciona un rango de caracteres de un control de edición. |
CEdit::SetTabStops | Establece las tabulaciones de un control de edición de varias líneas. |
CEdit::ShowBalloonTip | Muestra un globo de sugerencias asociado al control de edición actual. |
CEdit::Undo | Invierte la última operación de control de edición. |
Comentarios
Un control de edición es una ventana secundaria rectangular en la que el usuario puede escribir texto.
Puede crear un control de edición a partir de una plantilla de cuadro de diálogo o directamente en el código. En ambos casos, primero llame al constructor CEdit
para que construya el objeto CEdit
y luego llame a la función miembro Create para que cree el control de edición de Windows y lo adjunte al objeto CEdit
.
La construcción puede ser un proceso de un solo paso en una clase derivada de CEdit
. Escriba un constructor para la clase derivada y llame a Create
desde dentro del constructor.
CEdit
hereda una funcionalidad considerable de CWnd
. Para establecer y recuperar texto de un objeto CEdit
, use las funciones miembro de CWnd
SetWindowText y GetWindowText, que establecen u obtienen todo el contenido de un control de edición, aunque tenga varias líneas. Las líneas de texto de un control de varias líneas están separadas por secuencias de caracteres "\r\n". Además, si un control de edición tiene varias líneas, obtenga y establezca parte del texto del control mediante una llamada a las funciones miembro de CEdit
GetLine, SetSel, GetSel y ReplaceSel.
Si quiere controlar los mensajes de notificación de Windows enviados por un cuadro de edición a su elemento primario (normalmente una clase derivada de CDialog
), agregue una entrada de mapa de mensajes y una función miembro del controlador de mensajes a la clase primaria por cada mensaje.
Cada entrada de asignación de mensajes tiene la siguiente forma:
ON_NOTIFICATION( id, memberFxn )
donde id
especifica el id. de la ventana secundaria del control de edición que envía la notificación y memberFxn
es el nombre de la función miembro primaria que se ha escrito para controlar la notificación.
El prototipo de función principal es el siguiente:
afx_msg void memberFxn ( );
A continuación se muestra una lista de posibles entradas de mapa de mensajes y una descripción de los casos en los que se enviarían al elemento primario:
ON_EN_CHANGE El usuario ha realizado una acción que puede haber modificado texto de un control de edición. A diferencia del mensaje de notificación EN_UPDATE, este mensaje de notificación se envía después de que Windows actualice la pantalla.
ON_EN_ERRSPACE El control de edición no puede asignar memoria suficiente para satisfacer una solicitud específica.
ON_EN_HSCROLL El usuario hace clic en la barra de desplazamiento horizontal de un control de edición. Se notifica a la ventana primaria antes de actualizar la pantalla.
ON_EN_KILLFOCUS El control de edición pierde el foco de entrada.
ON_EN_MAXTEXT La inserción actual ha superado el número especificado de caracteres del control de edición y se ha truncado. También se envía cuando un control de edición no tiene el estilo ES_AUTOHSCROLL y el número de caracteres que se va a insertar superaría el ancho del control de edición. También se envía cuando un control de edición no tiene el estilo ES_AUTOVSCROLL y el número total de líneas resultante de una inserción de texto superaría el alto del control de edición.
ON_EN_SETFOCUS Se envía cuando un control de edición recibe el foco de entrada.
ON_EN_UPDATE El control de edición está a punto de mostrar texto modificado. Se envía después de que el control haya aplicado formato al texto, pero antes de que lo muestre en la pantalla, de modo que el tamaño de la ventana se pueda modificar si fuera necesario.
ON_EN_VSCROLL El usuario hace clic en la barra de desplazamiento vertical de un control de edición. Se notifica a la ventana primaria antes de actualizar la pantalla.
Si crea un objeto CEdit
dentro de un cuadro de diálogo, el objeto CEdit
se destruye automáticamente cuando el usuario cierra el cuadro de diálogo.
Si crea un objeto CEdit
a partir de un recurso de cuadro de diálogo, el objeto CEdit
se destruye automáticamente cuando el usuario cierra el cuadro de diálogo.
Si crea un objeto CEdit
dentro de una ventana, es posible que también tenga que destruirlo. Si crea el objeto CEdit
en la pila, se destruye automáticamente. Si crea el objeto CEdit
en el montón mediante la función new
, debe llamar a delete
en el objeto para destruirlo cuando el usuario finalice el control de edición de Windows. Si asigna cualquier memoria en el objeto CEdit
, invalide el destructor CEdit
para eliminar las asignaciones.
Para modificar determinados estilos de un control de edición (como ES_READONLY), debe enviar mensajes específicos al control en lugar de usar ModifyStyle. Vea Editar estilos de control en Windows SDK.
Para más información sobre CEdit
, consulte Controles.
Jerarquía de herencia
CEdit
Requisitos
Encabezado: afxwin.h
CEdit::CanUndo
Llame a esta función para determinar si se puede deshacer la última operación de edición.
BOOL CanUndo() const;
Valor devuelto
Valor distinto de cero si la última operación de edición se puede deshacer mediante una llamada a la función miembro Undo
; 0 si no se puede deshacer.
Comentarios
Para obtener más información, vea EM_CANUNDO en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::Undo.
CEdit::CEdit
Construye un objeto CEdit
.
CEdit();
Comentarios
Use Create para construir el control de edición de Windows.
Ejemplo
// Declare a local CEdit object.
CEdit myEdit;
// Declare a dynamic CEdit object.
CEdit *pmyEdit = new CEdit;
CEdit::CharFromPos
Llame a esta función para recuperar los índices de caracteres y líneas de base cero del carácter más próximo al punto especificado de este control CEdit
int CharFromPos(CPoint pt) const;
Parámetros
pt
Coordenadas de un punto en el área cliente de este objeto CEdit
.
Valor devuelto
Índice de caracteres en la palabra de orden inferior e índice de líneas en la palabra de orden superior.
Comentarios
Nota:
Esta función miembro está disponible a partir de Windows 95 y Windows NT 4.0.
Para obtener más información, vea EM_CHARFROMPOS en Windows SDK.
Ejemplo
// 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
Llame a esta función para eliminar (borrar) la selección actual (si la hubiera) del control de edición.
void Clear();
Comentarios
La eliminación realizada por Clear
se puede deshacer mediante una llamada a la función miembro Undo.
Para eliminar la selección actual y colocar el contenido eliminado en el Portapapeles, llame a la función miembro Cut.
Para obtener más información, vea WM_CLEAR en Windows SDK.
Ejemplo
// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();
CEdit::Copy
Llame a esta función para copiar la selección actual (si la hubiera) del control de edición en el Portapapeles en formato CF_TEXT.
void Copy();
Comentarios
Para obtener más información, vea WM_COPY en Windows SDK.
Ejemplo
// Copy all of the text to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Copy();
CEdit::Create
Crea el control de edición de Windows y lo adjunta al objeto CEdit
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parámetros
dwStyle
Especifica el estilo del control de edición. Aplique cualquier combinación de estilos de edición al control.
rect
Especifica el tamaño y la posición del control de edición. Puede ser un objeto CRect
o una estructura RECT
.
pParentWnd
Especifica la ventana primaria del control de edición (normalmente CDialog
). No debe ser NULL.
Nid
Especifica el identificador del control de edición.
Valor devuelto
Valor distinto de cero si la inicialización se lleva a cabo correctamente; de lo contrario, es 0.
Comentarios
El objeto CEdit
se construye en dos pasos. En primer lugar, llame al constructor CEdit
y luego a Create
, lo que crea el control de edición de Windows y lo adjunta al objeto CEdit
.
Cuando Create
se ejecuta, Windows envía los mensajes WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE y WM_GETMINMAXINFO al control de edición.
Estos mensajes se controlan de manera predeterminada mediante las funciones miembro OnNcCreate, OnNcCalcSize, OnCreate y OnGetMinMaxInfo de la clase base CWnd
. Para ampliar el control de mensajes predeterminado, derive una clase de CEdit
, agregue una asignación de mensajes a la nueva clase e invalide las funciones miembro del controlador de mensajes anteriores. Invalide OnCreate
, por ejemplo, para realizar la inicialización necesaria para la nueva clase.
Aplique los siguientes estilos de ventana a un control de edición.
WS_CHILD siempre
WS_VISIBLE Normalmente
WS_DISABLED Rarely
WS_GROUP Para agrupar controles
WS_TABSTOP Para incluir el control de edición en el orden de tabulación
Ejemplo
// 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
Llame a esta función para eliminar (cortar) la selección actual (si la hubiera) del control de edición y copiar el texto eliminado en el Portapapeles en formato CF_TEXT.
void Cut();
Comentarios
La eliminación realizada por Cut
se puede deshacer mediante una llamada a la función miembro Undo.
Para eliminar la selección actual sin colocar el texto eliminado en el Portapapeles, llame a la función miembro Clear.
Para obtener más información, vea WM_CUT en Windows SDK.
Ejemplo
// Delete all of the text and copy it to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Cut();
CEdit::EmptyUndoBuffer
Llame a esta función para restablecer (borrar) la marca de deshacer de un control de edición.
void EmptyUndoBuffer();
Comentarios
El control de edición ya no podrá deshacer la última operación. La marca de deshacer se establece cada vez que se puede deshacer una operación dentro del control de edición.
La marca de deshacer se borra automáticamente cada vez que se llama a las funciones miembro de CWnd
SetWindowText o SetHandle.
Para obtener más información, vea EM_EMPTYUNDOBUFFER en Windows SDK.
Ejemplo
// Clear the undo buffer.
if (m_myEdit.CanUndo())
{
m_myEdit.EmptyUndoBuffer();
ASSERT(!m_myEdit.CanUndo());
}
CEdit::FmtLines
Llame a esta función para activar o desactivar la inclusión de caracteres de salto de línea automático dentro de un control de edición de varias líneas.
BOOL FmtLines(BOOL bAddEOL);
Parámetros
bAddEOL
Especifica si se van a insertar caracteres de salto de línea automático. Un valor TRUE inserta los caracteres; un valor FALSE los quita.
Valor devuelto
Valor distinto de cero si se aplica algún formato; de lo contrario, 0.
Comentarios
Un salto de línea automático consta de dos retornos de carro y un avance de línea insertados al final de una línea que se interrumpe debido al ajuste de palabras. Un salto de línea manual consta de un retorno de carro y un avance de línea. Las líneas que terminan con un salto de línea manual no se ven afectadas por FmtLines
.
Windows solo responde si el objeto CEdit
es un control de edición de varias líneas.
FmtLines
solo afecta al búfer devuelto por GetHandle y el texto devuelto por WM_GETTEXT. No tiene ningún impacto sobre la presentación del texto dentro del control de edición.
Para obtener más información, vea EM_FMTLINES en Windows SDK.
Ejemplo
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 el texto que se muestra como indicación de texto, o sugerencia, en un control de edición cuando el control está vacío.
BOOL GetCueBanner(
LPWSTR lpszText,
int cchText) const;
CString GetCueBanner() const;
Parámetros
lpszText
[out] Puntero a una cadena que contiene el texto de indicación.
cchText
[in] Número de caracteres que se pueden recibir. Este número incluye el carácter nulo de terminación.
Valor devuelto
En la primera sobrecarga, TRUE si el método se ejecuta correctamente; en caso contrario, FALSE.
En la segunda sobrecarga, CString que contiene el texto de indicación si el método se ejecuta correctamente; de lo contrario, la cadena vacía ("").
Comentarios
Este método envía el mensaje EM_GETCUEBANNER, que se describe en Windows SDK. Para obtener más información, vea la macro Edit_GetCueBannerText.
CEdit::GetFirstVisibleLine
Llame a esta función para determinar la línea visible situada más arriba de un control de edición.
int GetFirstVisibleLine() const;
Valor devuelto
Índice de base cero de la línea visible situada más arriba. En los controles de edición de una sola línea, el valor devuelto es 0.
Comentarios
Para obtener más información, vea EM_GETFIRSTVISIBLELINE en Windows SDK.
Ejemplo
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
Llame a esta función para recuperar un identificador de la memoria asignada actualmente a un control de edición de varias líneas.
HLOCAL GetHandle() const;
Valor devuelto
Identificador de memoria local que identifica el búfer que incluye el contenido del control de edición. Si se produce un error, como enviar el mensaje a un control de edición de una sola línea, el valor devuelto es 0.
Comentarios
El identificador es un identificador de memoria local que pueden usar cualquiera de las funciones de memoria de Windows Local que toman un identificador de memoria local como parámetro.
GetHandle
solo se procesa mediante controles de edición de varias líneas.
Llame a GetHandle
en un control de edición de varias líneas de un cuadro de diálogo solo si el cuadro de diálogo se ha creado con la marca de estilo DS_LOCALEDIT establecida. Si no se ha establecido el estilo DS_LOCALEDIT, se sigue obteniendo un valor devuelto distinto de cero, pero no se puede usar.
Nota:
GetHandle
no funciona con Windows 95/98. Si llama a GetHandle
en Windows 95/98, devuelve NULL. GetHandle
funciona como se ha documentado en Windows NT 3.51 y versiones posteriores.
Para obtener más información, vea EM_GETHANDLE en Windows SDK.
Ejemplo
HLOCAL h = m_myEdit.GetHandle();
LPCTSTR lpszText = (LPCTSTR)::LocalLock(h);
// Dump the text of the edit control.
AFXDUMP(lpszText);
::LocalUnlock(h);
CEdit::GetHighlight
Obtiene los índices de los caracteres primero y último de un rango de texto resaltado del control de edición actual.
BOOL GetHighlight(
int* pichStart,
int* pichEnd) const;
Parámetros
pichStart
[out] Índice de base cero del primer carácter del rango de texto resaltado.
pichEnd
[out] Índice de base cero del último carácter del rango de texto resaltado.
Valor devuelto
TRUE si este método se ejecuta correctamente; de lo contrario, FALSE.
Comentarios
Este método envía el mensaje EM_GETHILITE, que se describe en Windows SDK. Tanto SetHighlight
como GetHighlight
están habilitados actualmente solo para compilaciones UNICODE.
CEdit::GetLimitText
Llame a esta función miembro para obtener el límite de texto de este objeto CEdit
.
UINT GetLimitText() const;
Valor devuelto
Límite de texto actual, en caracteres TCHAR, de este objetoCEdit
.
Comentarios
El límite de texto es la cantidad máxima de texto, en caracteres TCHAR, que el control de edición puede aceptar.
Nota:
Esta función miembro está disponible a partir de Windows 95 y Windows NT 4.0.
Para obtener más información, vea EM_GETLIMITTEXT en Windows SDK.
Ejemplo
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
Llame a esta función para recuperar una línea de texto de un control de edición y colocarla en lpszBuffer.
int GetLine(
int nIndex,
LPTSTR lpszBuffer) const;
int GetLine(
int nIndex,
LPTSTR lpszBuffer,
int nMaxLength) const;
Parámetros
nIndex
Especifica el número de línea que se va a recuperar de un control de edición de varias líneas. Los números de línea se basan en cero; un valor de 0 especifica la primera línea. Este parámetro se pasa por alto en los controles de edición de una sola línea.
lpszBuffer
Apunta al búfer que recibe una copia de la línea. La primera palabra del búfer debe especificar el número máximo de caracteres TCHAR que se pueden copiar en el búfer.
nMaxLength
Especifica el número máximo de caracteres TCHAR que se pueden copiar en el búfer. GetLine
coloca este valor en la primera palabra de lpszBuffer antes de realizar la llamada a Windows.
Valor devuelto
Número de caracteres que realmente se va a copiar. El valor devuelto es 0 si el número de línea especificado por nIndex es mayor que el número de líneas del control de edición.
Comentarios
La línea copiada no contiene un carácter de terminación nulo.
Para obtener más información, vea EM_GETLINE en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::GetLineCount.
CEdit::GetLineCount
Llame a esta función para recuperar el número de líneas de un control de edición de varias líneas.
int GetLineCount() const;
Valor devuelto
Entero que contiene el número de líneas del control de edición de varias líneas. Si no se ha escrito texto en el control de edición, el valor devuelto es 1.
Comentarios
GetLineCount
solo se procesa mediante controles de edición de varias líneas.
Para obtener más información, vea EM_GETLINECOUNT en Windows SDK.
Ejemplo
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
Llame a esta función miembro para recuperar los márgenes izquierdo y derecho de este control de edición.
DWORD GetMargins() const;
Valor devuelto
Ancho del margen izquierdo en la palabra de orden inferior y ancho del margen derecho en la palabra de orden superior.
Comentarios
Los márgenes se miden en píxeles.
Nota:
Esta función miembro está disponible a partir de Windows 95 y Windows NT 4.0.
Para obtener más información, vea EM_GETMARGINS en Windows SDK.
Ejemplo
Vea el ejemplo de CEditView::GetEditCtrl.
CEdit::GetModify
Llame a esta función para determinar si se ha modificado el contenido de un control de edición.
BOOL GetModify() const;
Valor devuelto
Valor distinto de cero si se ha modificado el contenido del control de edición; 0 si ha permanecido sin cambios.
Comentarios
Windows mantiene una marca interna que indica si se ha modificado el contenido del control de edición. Esta marca se borra cuando se crea por primera vez el control de edición y también se puede borrar si se llama a la función miembro SetModify.
Para obtener más información, vea EM_GETMODIFY en Windows SDK.
Ejemplo
// Reset the modified state only if my edit has been modified.
if (m_myEdit.GetModify())
m_myEdit.SetModify(FALSE);
CEdit::GetPasswordChar
Llame a esta función para recuperar el carácter de contraseña que se muestra en un control de edición cuando el usuario escribe texto.
TCHAR GetPasswordChar() const;
Valor devuelto
Especifica el carácter que se va a mostrar en lugar del carácter que el usuario ha escrito. El valor devuelto es NULL si no existe ningún carácter de contraseña.
Comentarios
Si crea el control de edición con el estilo ES_PASSWORD, el archivo DLL que admite el control determina el carácter de contraseña predeterminado. El manifiesto o el método InitCommonControlsEx determina qué archivo DLL admite el control de edición. Si user32.dll admite el control de edición, el carácter de contraseña predeterminado es ASTERISCO ('*', U+002A). Si comctl32.dll, versión 6, admite el control de edición, el carácter predeterminado es PUNTO NEGRO ('●', U+25CF). Para obtener más información sobre qué archivo DLL y versión admiten los controles comunes, vea Versiones de shell y controles comunes.
Este método envía el mensaje EM_GETPASSWORDCHAR, que se describe en Windows SDK.
Ejemplo
// Turn on the password mode.
m_myEdit.SetPasswordChar('*');
ASSERT(m_myEdit.GetStyle() & ES_PASSWORD);
ASSERT(m_myEdit.GetPasswordChar() == '*');
CEdit::GetRect
Llame a esta función para obtener el rectángulo de formato de un control de edición.
void GetRect(LPRECT lpRect) const;
Parámetros
lpRect
Apunta a la estructura RECT
que recibe el rectángulo de formato.
Comentarios
El rectángulo de formato es el rectángulo limitador del texto, que es independiente del tamaño de la ventana de control de edición.
Las funciones miembro SetRect y SetRectNP pueden modificar el rectángulo de formato de un control de edición de varias líneas.
Para obtener más información, vea EM_GETRECT en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::LimitText.
CEdit::GetSel
Llame a esta función para obtener las posiciones de los caracteres inicial y final de la selección actual (si la hubiera) de un control de edición; para ello, use el valor devuelto o los parámetros.
DWORD GetSel() const;
void GetSel(
int& nStartChar,
int& nEndChar) const;
Parámetros
nStartChar
Referencia a un entero que va a recibir la posición del primer carácter de la selección actual.
nEndChar
Referencia a un entero que va a recibir la posición del primer carácter no seleccionado más allá del final de la selección actual.
Valor devuelto
La versión que devuelve DWORD devuelve un valor que contiene la posición inicial de la palabra de orden inferior y la posición del primer carácter no seleccionado después del final de la selección de la palabra de orden superior.
Comentarios
Para obtener más información, vea EM_GETSEL en Windows SDK.
Ejemplo
// 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 cualquier globo de sugerencias asociado al control de edición actual.
BOOL HideBalloonTip();
Valor devuelto
TRUE si este método se ejecuta correctamente; de lo contrario, FALSE.
Comentarios
Esta función envía el mensaje EM_HIDEBALLOONTIP, que se describe en Windows SDK.
CEdit::LimitText
Llame a esta función para limitar la longitud del texto que el usuario puede escribir en un control de edición.
void LimitText(int nChars = 0);
Parámetros
nChars
Especifica la longitud (en caracteres TCHAR) del texto que el usuario puede escribir. Si este parámetro es 0, la longitud del texto se establece en UINT_MAX bytes. Este es el comportamiento predeterminado.
Comentarios
Si se modifica el límite de texto, solo se restringe el texto que el usuario puede escribir. No tiene ningún efecto sobre ningún texto que ya esté en el control de edición, ni afecta a la longitud del texto copiado en el control de edición por la función miembro SetWindowText de CWnd
. Si una aplicación usa la función SetWindowText
para colocar más texto en un control de edición que se especifica en la llamada a LimitText
, el usuario puede eliminar cualquier texto del control de edición. Pero el límite de texto evita que el usuario reemplace el texto existente por nuevo, a menos que la eliminación de la selección actual haga que el texto esté por debajo del límite de texto.
Nota:
En Win32 (Windows NT y Windows 95/98), SetLimitText reemplaza a esta función.
Para obtener más información, vea EM_LIMITTEXT en Windows SDK.
Ejemplo
// 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
Llame a esta función para recuperar el número de línea de la línea que contiene el índice de caracteres especificado.
int LineFromChar(int nIndex = -1) const;
Parámetros
nIndex
Contiene el valor de índice de base cero del carácter deseado en el texto del control de edición, o contiene -1. Si nIndex es -1, especifica la línea actual, es decir, la línea que contiene el símbolo de inserción.
Valor devuelto
Número de línea de base cero de la línea que contiene el índice de caracteres especificado por nIndex. Si nIndex es -1, se devuelve el número de la línea que contiene el primer carácter de la selección. Si no hay ninguna selección, se devuelve el número de línea actual.
Comentarios
Un índice de caracteres es el número de caracteres desde el principio del control de edición.
Esta función miembro solo se usa en controles de edición de varias líneas.
Para obtener más información, vea EM_LINEFROMCHAR en Windows SDK.
Ejemplo
// 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
Llame a esta función para recuperar el índice de caracteres de una línea dentro de un control de edición de varias líneas.
int LineIndex(int nLine = -1) const;
Parámetros
nLine
Contiene el valor de índice de la línea deseada en el texto del control de edición, o contiene -1. Si nLine es -1, especifica la línea actual, es decir, la línea que contiene el símbolo de inserción.
Valor devuelto
Índice de caracteres de la línea especificada en nLine o -1 si el número de línea especificado es mayor que el número de líneas del control de edición.
Comentarios
El índice de caracteres es el número de caracteres desde el principio del control de edición hasta la línea especificada.
Esta función miembro solo se procesa en controles de edición de varias líneas.
Para obtener más información, vea EM_LINEINDEX en Windows SDK.
Ejemplo
// 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 la longitud de una línea de un control de edición.
int LineLength(int nLine = -1) const;
Parámetros
nLine
Índice de base cero de un carácter de la línea cuya longitud se va a recuperar. El valor predeterminado es -1.
Valor devuelto
En los controles de edición de una sola línea, el valor devuelto es la longitud, en caracteres TCHAR, del texto del control de edición.
En los controles de edición de varias líneas, el valor devuelto es la longitud, en caracteres TCHAR, de la línea especificada por el parámetro nLine. En el texto ANSI, la longitud es el número de bytes de la línea; en el texto Unicode, la longitud es el número de caracteres de la línea. La longitud no incluye el carácter de retorno de carro del final de la línea.
Si el parámetro nLine es mayor que el número de caracteres del control, el valor devuelto es cero.
Si el parámetro nLine es -1, el valor devuelto es el número de caracteres no seleccionados de las líneas que contienen caracteres seleccionados. Por ejemplo, si la selección se extiende desde el cuarto carácter de una línea hasta el octavo carácter del final de la línea siguiente, el valor devuelto es 10. Es decir, tres caracteres en la primera línea y siete en la siguiente.
Para obtener más información sobre el tipo TCHAR, vea la fila TCHAR de la tabla de Tipos de datos de Windows.
Comentarios
Este método es compatible con el mensaje EM_LINELENGTH, que se describe en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::LineIndex.
CEdit::LineScroll
Llame a esta función para desplazar el texto de un control de edición de varias líneas.
void LineScroll(
int nLines,
int nChars = 0);
Parámetros
nLines
Especifica el número de líneas que se va a desplazar en vertical.
nChars
Especifica el número de posiciones de caracteres que se va a desplazar en horizontal. Este valor se omite si el control de edición tiene el estilo ES_RIGHT o ES_CENTER.
Comentarios
Esta función miembro solo se procesa en controles de edición de varias líneas.
El control de edición no desplaza verticalmente más allá de la última línea de texto del control de edición. Si la línea actual más el número de líneas especificado por nLines supera el número total de líneas del control de edición, el valor se ajusta para que la última línea del control de edición se desplace hasta la parte superior de la ventana de control de edición.
LineScroll
se puede usar para desplazar horizontalmente más allá del último carácter de cualquier línea.
Para obtener más información, vea EM_LINESCROLL en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::GetFirstVisibleLine.
CEdit::Paste
Llame a esta función para insertar los datos del Portapapeles en CEdit
en el punto de inserción.
void Paste();
Comentarios
Los datos solo se insertan si el Portapapeles contiene datos en formato CF_TEXT.
Para obtener más información, vea WM_PASTE en Windows SDK.
Ejemplo
// Replace all of the text with the text in the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Paste();
CEdit::PosFromChar
Llame a esta función para obtener la posición (esquina superior izquierda) de un carácter determinado dentro de este objeto CEdit
.
CPoint PosFromChar(UINT nChar) const;
Parámetros
nChar
Índice de base cero del carácter especificado.
Valor devuelto
Coordenadas de la esquina superior izquierda del carácter especificado por nChar.
Comentarios
El carácter se especifica mediante su valor de índice de base cero. Si nChar es mayor que el índice del último carácter de este objeto CEdit
, el valor devuelto especifica las coordenadas de la posición del carácter justo después del último carácter de este objeto CEdit
.
Nota:
Esta función miembro está disponible a partir de Windows 95 y Windows NT 4.0.
Para obtener más información, vea EM_POSFROMCHAR en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::LineFromChar.
CEdit::ReplaceSel
Llame a esta función para reemplazar la selección actual de un control de edición por el texto especificado por lpszNewText.
void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);
Parámetros
lpszNewText
Puntero a una cadena terminada en null que contiene el texto de reemplazo.
bCanUndo
Para especificar que esta función se puede deshacer, establezca el valor de este parámetro en TRUE. El valor predeterminado es FALSE.
Comentarios
Reemplaza solo una parte del texto de un control de edición. Si quiere reemplazar todo el texto, use la función miembro CWnd::SetWindowText.
Si no hay ninguna selección actual, el texto de reemplazo se inserta en la ubicación actual del cursor.
Para obtener más información, vea EM_REPLACESEL en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::LineIndex.
CEdit::SetCueBanner
Establece el texto que se muestra como indicación de texto, o sugerencia, en un control de edición cuando el control está vacío.
BOOL SetCueBanner(LPCWSTR lpszText);
BOOL SetCueBanner(
LPCWSTR lpszText,
BOOL fDrawWhenFocused = FALSE);
Parámetros
lpszText
[in] Puntero a una cadena que contiene la indicación que se va a mostrar en el control de edición.
fDrawWhenFocused
[in] Si es FALSE, el banner de indicación no se dibuja cuando el usuario hace clic en el control de edición y proporciona el foco al control.
Si es TRUE, el banner de indicación se dibuja incluso cuando el control tiene el foco. El banner de indicación desaparece cuando el usuario empieza a escribir en el control.
El valor predeterminado es FALSE.
Valor devuelto
TRUE si el método se ejecuta correctamente; de lo contrario, FALSE.
Comentarios
Este método envía el mensaje EM_SETCUEBANNER, que se describe en Windows SDK. Para obtener más información, vea la macro Edit_SetCueBannerTextFocused.
Ejemplo
En el siguiente ejemplo se muestra el método CEdit::SetCueBanner.
m_cedit.SetCueBanner(_T("First, enter text here..."), TRUE);
CEdit::SetHandle
Llame a esta función para establecer el identificador de la memoria local que se va a usar en un control de edición de varias líneas.
void SetHandle(HLOCAL hBuffer);
Parámetros
hBuffer
Contiene un identificador de la memoria local. Este identificador debe haberse creado mediante una llamada anterior a la función LocalAlloc de Windows con la marca LMEM_MOVEABLE. Se da por hecho que la memoria contiene una cadena terminada en null. Si no es así, el primer byte de la memoria asignada debe establecerse en 0.
Comentarios
Después, el control de edición usa este búfer para almacenar el texto mostrado actualmente en lugar de asignar su propio búfer.
Esta función miembro solo se procesa en controles de edición de varias líneas.
Antes de que una aplicación establezca un nuevo identificador de memoria, debe usar la función miembro GetHandle para obtener el identificador del búfer de memoria actual y liberar esa memoria mediante la función de Windows LocalFree
.
SetHandle
borra el búfer de deshacer (la función miembro CanUndo devuelve 0) y la marca de modificación interna (la función miembro GetModify devuelve 0). Se vuelve a dibujar la ventana de control de edición.
Puede usar esta función miembro en un control de edición de varias líneas de un cuadro de diálogo solo si ha creado el cuadro de diálogo con la marca de estilo DS_LOCALEDIT establecida.
Nota:
GetHandle
no funciona con Windows 95/98. Si llama a GetHandle
en Windows 95/98, devuelve NULL. GetHandle
funciona como se ha documentado en Windows NT 3.51 y versiones posteriores.
Para obtener más información, vea EM_SETHANDLE, LocalAlloc y LocalFree en Windows SDK.
Ejemplo
// 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
Resalta un rango de texto que se muestra en el control de edición actual.
void SetHighlight(
int ichStart,
int ichEnd);
Parámetros
ichStart
[in] Índice de base cero del primer carácter del rango de texto que se va a resaltar.
ichEnd
[in] Índice de base cero del último carácter del rango de texto que se va a resaltar.
Comentarios
Este método envía el mensaje EM_SETHILITE, que se describe en Windows SDK. Este método envía el mensaje EM_SETHILITE, que se describe en Windows SDK. Tanto SetHighlight
como GetHighlight
están habilitados solo para compilaciones UNICODE.
CEdit::SetLimitText
Llame a esta función miembro para establecer el límite de texto de este objeto CEdit
.
void SetLimitText(UINT nMax);
Parámetros
nMax
Nuevo límite de texto, en caracteres.
Comentarios
El límite de texto es la cantidad máxima de texto, en caracteres, que el control de edición puede aceptar.
Si se modifica el límite de texto, solo se restringe el texto que el usuario puede escribir. No tiene ningún efecto sobre ningún texto que ya esté en el control de edición, ni afecta a la longitud del texto copiado en el control de edición por la función miembro SetWindowText de CWnd
. Si una aplicación usa la función SetWindowText
para colocar más texto en un control de edición que se especifica en la llamada a LimitText
, el usuario puede eliminar cualquier texto del control de edición. Pero el límite de texto evita que el usuario reemplace el texto existente por nuevo, a menos que la eliminación de la selección actual haga que el texto esté por debajo del límite de texto.
Esta función reemplaza a LimitText en Win32.
Para obtener más información, vea EM_SETLIMITTEXT en Windows SDK.
Ejemplo
Vea el ejemplo de CEditView::GetEditCtrl.
CEdit::SetMargins
Llame a este método para establecer los márgenes izquierdo y derecho de este control de edición.
void SetMargins(
UINT nLeft,
UINT nRight);
Parámetros
nLeft
Ancho del nuevo margen izquierdo, en píxeles.
nRight
Ancho del nuevo margen derecho, en píxeles.
Comentarios
Nota:
Esta función miembro está disponible a partir de Windows 95 y Windows NT 4.0.
Para obtener más información, vea EM_SETMARGINS en Windows SDK.
Ejemplo
Vea el ejemplo de CEditView::GetEditCtrl.
CEdit::SetModify
Llame a esta función para establecer o borrar la marca modificada de un control de edición.
void SetModify(BOOL bModified = TRUE);
Parámetros
bModified
Un valor TRUE indica que el texto se ha modificado y un valor FALSE que no. De manera predeterminada, se establece la marca modificada.
Comentarios
La marca modificada indica si se ha modificado o no el texto del control de edición. Se establece automáticamente cada vez que el usuario modifica el texto. Su valor se puede recuperar con la función miembro GetModify.
Para obtener más información, vea EM_SETMODIFY en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::GetModify.
CEdit::SetPasswordChar
Llame a esta función para establecer o quitar un carácter de contraseña mostrado en un control de edición cuando el usuario escribe texto.
void SetPasswordChar(TCHAR ch);
Parámetros
Ch
Especifica el carácter que se va a mostrar en lugar del carácter escrito por el usuario. Si ch es 0, se muestran los caracteres reales escritos por el usuario.
Comentarios
Cuando se establece un carácter de contraseña, ese carácter se muestra por cada carácter que escribe el usuario.
Esta función miembro no tiene ningún efecto en un control de edición de varias líneas.
Cuando se llama a la función miembro SetPasswordChar
, CEdit
vuelve a dibujar todos los caracteres visibles con el carácter especificado por ch.
Si el control de edición se crea con el estilo ES_PASSWORD, el carácter de contraseña predeterminado se establece en un asterisco (*). Este estilo se quita si se llama a SetPasswordChar
con ch establecido en 0.
Para obtener más información, vea EM_SETPASSWORDCHAR en Windows SDK.
Ejemplo
// Turn off the password mode.
m_myEdit.SetPasswordChar(0);
ASSERT(!(m_myEdit.GetStyle() & ES_PASSWORD));
CEdit::SetReadOnly
Llame a esta función para establecer el estado de solo lectura de un control de edición.
BOOL SetReadOnly(BOOL bReadOnly = TRUE);
Parámetros
bReadOnly
Especifica si se va a establecer o quitar el estado de solo lectura del control de edición. Un valor TRUE establece el estado en solo lectura; un valor FALSE establece el estado en lectura y escritura.
Valor devuelto
Valor distinto de cero si la operación se realiza correctamente o 0 si se produce un error.
Comentarios
El valor actual se puede encontrar si se prueba la marca ES_READONLY en el valor devuelto de CWnd::GetStyle.
Para obtener más información, vea EM_SETREADONLY en Windows SDK.
Ejemplo
// Set the edit control to be read-only.
m_myEdit.SetReadOnly(TRUE);
ASSERT(m_myEdit.GetStyle() & ES_READONLY);
CEdit::SetRect
Llame a esta función para establecer las dimensiones de un rectángulo mediante las coordenadas especificadas.
void SetRect(LPCRECT lpRect);
Parámetros
lpRect
Apunta a la estructura RECT
o el objeto CRect
que especifica las nuevas dimensiones del rectángulo de formato.
Comentarios
Este miembro solo se procesa en controles de edición de varias líneas.
Use SetRect
para establecer el rectángulo de formato de un control de edición de varias líneas. El rectángulo de formato es el rectángulo limitador del texto, que es independiente del tamaño de la ventana de control de edición. Cuando se crea el control de edición por primera vez, el rectángulo de formato es igual que el área cliente de la ventana de control de edición. Mediante la función miembro SetRect
, una aplicación puede hacer que el rectángulo de formato sea mayor o menor que la ventana de control de edición.
Si el control de edición no tiene barra de desplazamiento, se recorta el texto, no se ajusta, si el rectángulo de formato es mayor que la ventana. Si el control de edición contiene un borde, el rectángulo de formato se reduce según el tamaño del borde. Si ajusta el rectángulo devuelto por la función miembro GetRect
, debe quitar el tamaño del borde antes de pasar el rectángulo a SetRect
.
Cuando se llama a SetRect
, también se vuelve a aplicar formato al texto del control de edición, que se vuelve a mostrar.
Para obtener más información, vea EM_SETRECT en Windows SDK.
Ejemplo
// 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
Llame a esta función para establecer el rectángulo de formato de un control de edición de varias líneas.
void SetRectNP(LPCRECT lpRect);
Parámetros
lpRect
Apunta a una estructura RECT
o un objeto CRect
que especifica las nuevas dimensiones del rectángulo.
Comentarios
El rectángulo de formato es el rectángulo limitador del texto, que es independiente del tamaño de la ventana de control de edición.
SetRectNP
es idéntico a la función miembro SetRect
, salvo que la ventana de control de edición no se vuelve a dibujar.
Cuando se crea el control de edición por primera vez, el rectángulo de formato es igual que el área cliente de la ventana de control de edición. Mediante una llamada a la función miembro SetRectNP
, una aplicación puede hacer que el rectángulo de formato sea mayor o menor que la ventana de control de edición.
Si el control de edición no tiene barra de desplazamiento, se recorta el texto, no se ajusta, si el rectángulo de formato es mayor que la ventana.
Este miembro solo se procesa en controles de edición de varias líneas.
Para obtener más información, vea EM_SETRECTNP en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::SetRect.
CEdit::SetSel
Llame a esta función para seleccionar un rango de caracteres de un control de edición.
void SetSel(
DWORD dwSelection,
BOOL bNoScroll = FALSE);
void SetSel(
int nStartChar,
int nEndChar,
BOOL bNoScroll = FALSE);
Parámetros
dwSelection
Especifica la posición inicial de la palabra de orden inferior y la posición final de la palabra de orden superior. Si la palabra de orden inferior es 0 y la de orden superior es -1, se selecciona todo el texto del control de edición. Si la palabra de orden inferior es -1, se quita cualquier selección actual.
bNoScroll
Indica si el símbolo de inserción debe desplazarse hasta la vista. Si es FALSE, el símbolo de inserción se desplaza hasta la vista. Si es TRUE, el símbolo de inserción no se desplaza a la vista.
nStartChar
Especifica la posición inicial. Si nStartChar es 0 y nEndChar es -1, se selecciona todo el texto del control de edición. Si nStartChar es -1, se quita cualquier selección actual.
nEndChar
Especifica la posición final.
Comentarios
Para obtener más información, vea EM_SETSEL en Windows SDK.
Ejemplo
Vea el ejemplo de CEdit::GetSel.
CEdit::SetTabStops
Llame a esta función para establecer las tabulaciones de un control de edición de varias líneas.
void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);
BOOL SetTabStops(
int nTabStops,
LPINT rgTabStops);
Parámetros
cxEachStop
Especifica que las tabulaciones se deben establecer en cada unidad de diálogo cxEachStop.
nTabStops
Especifica el número de tabulaciones incluidas en rgTabStops. Este número debe ser mayor que 1.
rgTabStops
Apunta a una matriz de enteros sin signo que especifican las tabulaciones en unidades de diálogo. Una unidad de diálogo es una distancia horizontal o vertical. Una unidad de diálogo horizontal es igual a un cuarto de la unidad de ancho base del cuadro diálogo actual, y una unidad de diálogo vertical es igual a un octavo de la unidad de alto base del cuadro de diálogo actual. Las unidades base del cuadro de diálogo se calculan en función del alto y ancho de la fuente actual del sistema. La función de Windows GetDialogBaseUnits
devuelve las unidades base del cuadro de diálogo actuales en píxeles.
Valor devuelto
Valor distinto de cero si se han establecido las tabulaciones; de lo contrario, 0.
Comentarios
Cuando se copia texto en un control de edición de varias líneas, cualquier carácter de tabulación del texto hace que se genere espacio hasta la siguiente tabulación.
Para establecer tabulaciones en el tamaño predeterminado de 32 unidades de diálogo, llame a la versión sin parámetros de esta función miembro. Para establecer tabulaciones en un tamaño distinto de 32, llame a la versión con el parámetro cxEachStop. Para establecer tabulaciones en una matriz de tamaños, use la versión con dos parámetros.
Esta función miembro solo se procesa en controles de edición de varias líneas.
SetTabStops
no vuelve a dibujar automáticamente la ventana de edición. Si cambia las tabulaciones de un texto que ya está en el control de edición, llame a CWnd::InvalidateRect para volver a dibujar la ventana de edición.
Para obtener más información, vea EM_SETTABSTOPS y GetDialogBaseUnits en Windows SDK.
Ejemplo
Vea el ejemplo de CEditView::SetTabStops.
CEdit::ShowBalloonTip
Muestra un globo de sugerencias asociado al control de edición actual.
BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);
BOOL ShowBalloonTip(
LPCWSTR lpszTitle,
LPCWSTR lpszText,
INT ttiIcon = TTI_NONE);
Parámetros
pEditBalloonTip
[in] Puntero a una estructura EDITBALLOONTIP que describe el globo de sugerencias.
lpszTitle
[in] Puntero a una cadena Unicode que contiene el título del globo de sugerencias.
lpszText
[in] Puntero a una cadena Unicode que contiene el texto del globo de sugerencias.
ttiIcon
[in] INT que especifica el tipo de icono que se va a asociar al globo de sugerencias. El valor predeterminado es TTI_NONE. Para obtener más información, vea el miembro ttiIcon
de la estructura EDITBALLOONTIP.
Valor devuelto
TRUE si este método se ejecuta correctamente; de lo contrario, FALSE.
Comentarios
Esta función envía el mensaje EM_SHOWBALLOONTIP, que se describe en Windows SDK. Para obtener más información, vea la macro Edit_ShowBalloonTip.
Ejemplo
En el primer ejemplo de código se define una variable, m_cedit
, que se usa para acceder al control de edición actual. Esta variable se utiliza en el siguiente ejemplo.
public:
// Variable to access the edit control.
CEdit m_cedit;
En el ejemplo de código siguiente se muestra un globo de sugerencias de un control de edición. El método CEdit::ShowBalloonTip especifica un título y texto para el globo de sugerencias.
m_cedit.ShowBalloonTip(
_T("CEdit Balloon Tip"), // title
_T("Here's a tip!"), // text
TTI_INFO);
CEdit::Undo
Llame a esta función para deshacer la última operación de control de edición.
BOOL Undo();
Valor devuelto
En un control de edición de una sola línea, el valor devuelto siempre es distinto de cero. En un control de edición de varias líneas, el valor devuelto es distinto de cero si la operación de deshacer se realiza correctamente o 0 si se produce un error en ella.
Comentarios
También se puede deshacer una operación de deshacer. Por ejemplo, puede restaurar texto eliminado con la primera llamada a Undo
. Siempre que no haya ninguna operación de edición que intervenga, puede quitar el texto de nuevo con una segunda llamada a Undo
.
Para obtener más información, vea EM_UNDO en Windows SDK.
Ejemplo
// Undo the last operation, if possible.
if (m_myEdit.CanUndo())
m_myEdit.Undo();
Vea también
MFC Sample CALCDRIV
MFC Sample CMNCTRL2
CWnd (clase)
Gráfico de jerarquías
CWnd (clase)
CButton (clase)
CComboBox (clase)
CListBox (clase)
CScrollBar (clase)
CStatic (clase)
CDialog (clase)