Re[3]: Как заставить EditBox прокручиваться вслед за вставко
От: Sashaka Россия  
Дата: 14.09.07 20:15
Оценка:
Здравствуйте, bugpiper, Вы писали:
B>Сорри, хочу уточнить, ибо не так поняли.
B>При вставке текста, количество строк которого превышает высоту (в строках) EditBox-а, по умолчанию бегунок остаётся на месте. Вот, я мучаюсь, пытаясь найти решение, чтоб бегунок автоматически перескакивал в конец полосы прокрутки.
B>Помогите найти решение. Спасибо.

1. создаете класс-наследник от CEdit, например CMyEdit.
2. используете его вместо того CEdit который вы использовали. Если вы получали CEdit через GetDlgItem, придется от этого отказаться и либо создать его самому через Create либо через DDX (класс-визард) создать переменную
3. в своем CMyEdit переопределяете виртуальную функцию (add virtual function):

LRESULT CMyEdit::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
    // TODO: Add your specialized code here and/or call the base class
    
    if (message == WM_PASTE)
    {
        LineScroll( GetLineCount() );
    }

    return CEdit::DefWindowProc(message, wParam, lParam);
}


типа работает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.