Говоря отдельное окно для прокрутки - PullRequest
0 голосов
/ 02 февраля 2012

Мне нужно иметь возможность программно прокручивать окно вверх и вниз, учитывая только точку на экране. Мне удалось получить дескриптор с помощью Windows API, но я не могу его прокрутить вверх или вниз.

Примите следующий код:

//retrieves the correct window.
IntPtr      hWnd = Win32.WindowFromPoint(new Point(xPos, yPos));

Win32.Rect  rect = default(Win32.Rect);

//retrieves a rectangle with the desired windows dimensions 
Win32.GetWindowRect(hWnd, ref rect);

//Insert scroll code here...

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

для прокрутки окна необходимо отправить ему сообщение Windows, позвонив по номеру SendMessage с соответствующими параметрами - для получения полной информации о прокрутке и связанных сообщениях и т. Д. См. MSDN .

ОБНОВЛЕНИЕ - согласно комментариям:

Другой вариант может заключаться в том, чтобы вызвать ScrollWindowEx на hWnd - согласно комментариям, вызов ScrollwindowEx НЕ должен использоваться, поскольку это может привести к несогласованностимежду отображаемым состоянием и внутренним состоянием соответствующего окна!

1 голос
/ 02 февраля 2012

Вы пытались использовать функцию SendMessage () с WM_VSCROLL и WM_HSCROLL сообщениями?

Также проверьте SetScrollInfo (pInvoked версия здесь ).Даже этот пост может быть полезен для вас.

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