Как заставить вертикальную полосу прокрутки следовать данным? - PullRequest
2 голосов
/ 23 марта 2009

В моем MFC VC ++ 6.0 я добавил EditBox с вертикальной полосой прокрутки, каждые 10 секунд я читаю данные из последовательного порта и должен отображаться через EditBox (IDC_EDIT1), я сделал это без проблем.

Но одна типичная проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда новые данные, отображаемые в EditBox, вертикальная полоса прокрутки идет вверх, а данные остаются внизу, мне приходится каждый раз прокручивать страницу вниз, чтобы прочитать данные.

Таким образом, мой вопрос заключается в том, что всякий раз, когда при отображении новых данных в EditBox вертикальная полоса прокрутки также должна перемещаться вниз вместе с данными.

Как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 24 марта 2009

Также, если ваш EditBox - CEdit, вы можете попробовать следовать его функциям-членам void SetSel ( DWORD dwSelection, BOOL bNoScroll = FALSE ); void SetSel ( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );

1 голос
/ 23 марта 2009

Вам нужно будет отправить элементу управления редактирования сообщение EM_SETSEL с длиной строки в качестве параметров.

0 голосов
/ 03 апреля 2009

Вы можете отправить сообщение в орган управления:

SendMessage(hwnd, WM_VSCROLL, SB_BOTTOM, 0);

где hwnd - ручка вашего поля ввода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...