Получить весь прямоугольник прокручиваемого окна - PullRequest
1 голос
/ 13 августа 2010

Я пытаюсь получить весь прямоугольник прокручиваемого окна, используя WIN32 API.Я думал, что GetClientRect вернет то, что мне нужно, но эта функция, кажется, возвращает только текущий видовой экран.Существует ли какой-либо конкретный вызов функции, который возвращает всю прокручиваемую область как RECT, или я должен вызвать GetScrollRange, чтобы вычислить регион сам?

Ответы [ 2 ]

4 голосов
/ 13 августа 2010

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

2 голосов
/ 13 августа 2010

Звучит так, как будто это конкретное окно использует виртуальную прокрутку. Даже GetScrollRange не обязательно говорит вам размеры, потому что нет требования, чтобы дельта 1 на полосе прокрутки равнялась 1 пикселю, фактически во многих случаях это одна запись, одна строка и т. Д.

Еще одна попытка - перечислить все дочерние окна и найти минимальную и максимальную координаты x и y (не забудьте указать ширину и высоту каждого дочернего окна). Конечно, это не поможет, если контент прорисован напрямую, а не иерархия окон.

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