Показать в 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);
→ Ссылка