Показать в edit control текст с заданной строки
В winapi есть сообщение EM_GETFIRSTVISIBLELINE, с помощью которого можно получить для многострочного едит контрола первую отображаемую в нём строку. Сообщения EM_SETFIRSTVISIBLELINE в winapi нет. В связи с этим есть вопрос: как сделать обратную операцию, прокрутить едит контрол так, чтобы первой видимой строкой стала строка с заданным номером?
Ответы (1 шт):
Автор решения: Paket236
→ Ссылка
Я нашёл следующее для себя решение:
// получить строку
int line = SendMessage(hWnd, EM_GETFIRSTVISIBLELINE, 0, 0);
// сделать какую-нибудь операцию вставки, меняющую положение Scroll Bar'а
// ...
// перемотать вверх
SendMessage(hWnd, WM_VSCROLL, SB_TOP, 0);
// перемотать на line строк вниз
SendMessage(hWnd, EM_LINESCROLL, 0, line);