BOOL CMy3Dlg::UpdateData(BOOL p)
{
__try
{
return CDialog::UpdateData(p);
}
__finally
{
m_edt.LineScroll(m_edt.GetFirstVisibleLine() + m_edt.GetLineCount());
}
}
проблема со скролом в multiline edit-box :/
Он выполнят функции статуса, в который я просто скидываю всю информацию о работе программы. edit box снабжён вертикальным скруллом. И вот с ним то как раз и загвоздка. Когда например текста становится так много, что он уходит вниз edit box'a, что его перестаёт быть видно. Соответственно, чтоб его увидеть, нужно вручную заюзать скролл.
Так вот внимание вопрос: как заставить скролл занимать всегда самую нижнюю позицию? То есть, чтобы он на автомате сам опускался вниз по мере поступления нового текста?
Спасибо :)
Цитата:
Originally posted by nof
В общем, есть multiline edit box.
Он выполнят функции статуса, в который я просто скидываю всю информацию о работе программы. edit box снабжён вертикальным скруллом. И вот с ним то как раз и загвоздка. Когда например текста становится так много, что он уходит вниз edit box'a, что его перестаёт быть видно. Соответственно, чтоб его увидеть, нужно вручную заюзать скролл.
Так вот внимание вопрос: как заставить скролл занимать всегда самую нижнюю позицию? То есть, чтобы он на автомате сам опускался вниз по мере поступления нового текста?
m_edt.
Спасибо :)
В общем, есть multiline edit box.
Он выполнят функции статуса, в который я просто скидываю всю информацию о работе программы. edit box снабжён вертикальным скруллом. И вот с ним то как раз и загвоздка. Когда например текста становится так много, что он уходит вниз edit box'a, что его перестаёт быть видно. Соответственно, чтоб его увидеть, нужно вручную заюзать скролл.
Так вот внимание вопрос: как заставить скролл занимать всегда самую нижнюю позицию? То есть, чтобы он на автомате сам опускался вниз по мере поступления нового текста?
m_edt.
Спасибо :)
int nCount=m_edt.GetLineCount();
m_edt.LineScroll(nCount);
m_edt.LineScroll(-3); // или что-то такое
Цитата:
Originally posted by Баювар
int nCount=m_edt.GetLineCount();
m_edt.LineScroll(nCount);
m_edt.LineScroll(-3); // или что-то такое
int nCount=m_edt.GetLineCount();
m_edt.LineScroll(nCount);
m_edt.LineScroll(-3); // или что-то такое
да это понятно, но придётся это вставлять во всех местах, где текст в edit box выводится :(
Мне интересно, возможно ли, чтоб скролл автоматом всегда самое нижнее положение занимал.
Если ты обновляешь edit box через UpdateData, то можно её перегрузить и там вставить код, прокручивающий box