Нужно ли использовать ScrollWindowEx / ScrollWindow / ScrollDC для прокрутки? - PullRequest
0 голосов
/ 11 декабря 2011

Я нахожусь в процессе реализации прокрутки в пользовательском элементе управления редактирования, над которым я работал. Что мне было интересно, так это то, важно ли использовать ScrollWindowEx / ScrollWindow / ScrollDC для реализации прокрутки? Я вижу, что ScrollWindowEx просто прокручивает область рисования. Все это хорошо, но, поскольку в моем контроле редактирования реализована двойная буферизация, мне придется обновить и свой BitBlt. Это тривиальная вещь, но мне было интересно, если это необходимо. Если я использую только SetScrollInfo, это также будет иметь тот же эффект. Единственное преимущество, которое я вижу здесь, состоит в том, что когда пользователь прокручивает вверх или вниз, там уже будет какой-то текст (потому что ScrollWindowEx смещает целевую клиентскую область), и мне не придется беспокоиться о перерисовке. Есть ли какое-либо другое преимущество или причина, по которой используется ScrollWindowEx? Я новичок в прокрутке в win32, и на самом деле это первый раз, когда мне приходится выполнять всю обработку самостоятельно, а не API, делающий это для меня, поэтому я действительно не знаю, как это сделать.

P.S. Просто чтобы прояснить, я не использую MFC. Только Win32 API. Язык программирования: неуправляемый C ++

1 Ответ

5 голосов
/ 11 декабря 2011

Вы можете реализовать прокрутку любым удобным вам способом.

ScrollWindow и т. Д. Прокрутит соответствующую часть клиентской области и лишит законной силы ту часть, которая затем требует перекраски.

В общем, это эффективный и простой способ обработки прокрутки, поэтому, очевидно, он популярен. Но если вы можете показать, что в вашем случае вы можете добиться того же результата более эффективно, сделайте это.

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