Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проблема со скролом в multiline edit-box :/

318
18 апреля 2006 года
nof
193 / / 03.04.2006
В общем, есть multiline edit box.
Он выполнят функции статуса, в который я просто скидываю всю информацию о работе программы. edit box снабжён вертикальным скруллом. И вот с ним то как раз и загвоздка. Когда например текста становится так много, что он уходит вниз edit box'a, что его перестаёт быть видно. Соответственно, чтоб его увидеть, нужно вручную заюзать скролл.
Так вот внимание вопрос: как заставить скролл занимать всегда самую нижнюю позицию? То есть, чтобы он на автомате сам опускался вниз по мере поступления нового текста?

Спасибо :)
16K
18 апреля 2006 года
Баювар
10 / / 16.04.2006
Цитата:
Originally posted by nof
В общем, есть multiline edit box.
Он выполнят функции статуса, в который я просто скидываю всю информацию о работе программы. edit box снабжён вертикальным скруллом. И вот с ним то как раз и загвоздка. Когда например текста становится так много, что он уходит вниз edit box'a, что его перестаёт быть видно. Соответственно, чтоб его увидеть, нужно вручную заюзать скролл.
Так вот внимание вопрос: как заставить скролл занимать всегда самую нижнюю позицию? То есть, чтобы он на автомате сам опускался вниз по мере поступления нового текста?
m_edt.
Спасибо :)


int nCount=m_edt.GetLineCount();
m_edt.LineScroll(nCount);
m_edt.LineScroll(-3); // или что-то такое

318
18 апреля 2006 года
nof
193 / / 03.04.2006
Цитата:
Originally posted by Баювар
int nCount=m_edt.GetLineCount();
m_edt.LineScroll(nCount);
m_edt.LineScroll(-3); // или что-то такое


да это понятно, но придётся это вставлять во всех местах, где текст в edit box выводится :(
Мне интересно, возможно ли, чтоб скролл автоматом всегда самое нижнее положение занимал.

17K
19 апреля 2006 года
blurred
7 / / 17.04.2006
Если ты обновляешь edit box через UpdateData, то можно её перегрузить и там вставить код, прокручивающий box
Код:
BOOL CMy3Dlg::UpdateData(BOOL p)
{
    __try
    {
        return CDialog::UpdateData(p);
    }
    __finally
    {
        m_edt.LineScroll(m_edt.GetFirstVisibleLine() + m_edt.GetLineCount());
    }
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог