告诉一个单独的窗口滚动

本文关键字:单独 窗口 滚动 一个 | 更新日期: 2023-09-27 18:22:22

我需要能够在屏幕上只给定一个点的情况下以编程方式上下滚动窗口。我已经设法使用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...

告诉一个单独的窗口滚动

要滚动窗口,您需要通过调用带有适当参数的SendMessage向其发送一条windows消息-有关滚动和相关消息等的完整详细信息,请参阅MSDN。

更新-根据意见:

另一个选项可能是在hWnd上调用ScrollWindowEx——根据注释,不应使用调用ScrollwindowEx,因为这会在相应窗口的显示状态和内部状态之间产生不一致!

您是否尝试将SendMessage()函数用于WM_VSCROLL和WM_HSCROLL消息?

另请检查SetCrollInfo(此处为p调用版本)。即使是这篇文章也可能对你有所帮助。