Borrar lineas de un edit multilinea

01/03/2005 - 16:15 por Ronald | Informe spam
Hola,

Me gustaría saber como puedo hacer para que cuando vaya añadiendo lineas de
un edit multilinea si el nº de lineas es mayor a 10 borrar la última.

Algo asi:

añadir linea al edit;
if (numLineas > 10 )
eliminar la última;
Se que hay una función miembro del edit que es GetLineCount, pero no se como
eliminar la última.

Gracias y Saludos.

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
02/03/2005 - 10:41 | Informe spam
Lo puedes hacer usando las funciones LineIndex, SetSel y ReplaceSel.

Mira el ejemplo que pongo abajo, copiado de la documentación de la función
LineIndex

// The pointer to my edit.
extern CEdit* pmyEdit;
// The string for replacing.
extern LPCTSTR lpszmyString;

int nBegin, nEnd;

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


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Ronald
02/03/2005 - 14:55 | Informe spam
Hola Rodrigo,

Me ha servido tu código como ejemplo, al final he puesto lo siguiente, no me
sale del todo bien pero como al fin y al cabo lo que quiero es mostrar un log
en un edit multilinea tampoco me importa tanto.
int nBeginLineAnt, nEndLineAnt, nBeginLineAct, nEndLineAct, nLineaABorrar;
nLineaABorrar = 20;
if ((nBeginLineAct = m_editConsole.LineIndex(nLineaABorrar)) != -1)
{
nBeginLineAnt = m_editConsole.LineIndex(nLineaABorrar-1);
nEndLineAnt = nBeginLineAnt + m_editConsole.LineLength(nLineaABorrar-1);
nEndLineAct = nBeginLineAct + m_editConsole.LineLength(nLineaABorrar);
m_editConsole.SetSel(nEndLineAnt, nEndLineAct);
m_editConsole.ReplaceSel("");
}

Muchas gracias x tu ayuda.

"Rodrigo Corral [MVP]" wrote:

Lo puedes hacer usando las funciones LineIndex, SetSel y ReplaceSel.

Mira el ejemplo que pongo abajo, copiado de la documentación de la función
LineIndex

// The pointer to my edit.
extern CEdit* pmyEdit;
// The string for replacing.
extern LPCTSTR lpszmyString;

int nBegin, nEnd;

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


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org



Respuesta Responder a este mensaje
#3 Rodrigo Corral [MVP]
02/03/2005 - 16:12 | Informe spam
Y por que no usas un listbox, seria mucho más simple...


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#4 Ronald
02/03/2005 - 16:57 | Informe spam
Pues no lo se, ya lo he hecho con el edit, quizás si que es más simple, no me
lo he planteado.

"Rodrigo Corral [MVP]" wrote:

Y por que no usas un listbox, seria mucho más simple...


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida