在C#中,给定一个窗口句柄的intptr,如何测量这个窗口句柄';使用scrollinfo设置真实高度
我在一个单独的应用程序中的滚动窗口中有一个子窗口。我试图使用C#控制台应用程序检查滚动窗口的真实高度(不是屏幕上的高度,而是可以滚动多少像素的像素高度)。我知道,使用现有的user32.dll libs,我可以要求提供滚动信息,但这给了我有关滚动条本身、滚动条高度和位置的详细信息,但没有给我滚动条将滚动的总像素在C#中,给定一个窗口句柄的intptr,如何测量这个窗口句柄';使用scrollinfo设置真实高度,c#,scroll,intptr,C#,Scroll,Intptr,我在一个单独的应用程序中的滚动窗口中有一个子窗口。我试图使用C#控制台应用程序检查滚动窗口的真实高度(不是屏幕上的高度,而是可以滚动多少像素的像素高度)。我知道,使用现有的user32.dll libs,我可以要求提供滚动信息,但这给了我有关滚动条本身、滚动条高度和位置的详细信息,但没有给我滚动条将滚动的总像素 [DllImport("User32.dll")] private static extern bool GetScrollInfo(IntPtr hwnd, int fnBar, re
[DllImport("User32.dll")]
private static extern bool GetScrollInfo(IntPtr hwnd, int fnBar, ref ScrollInfo lpsi);
是否有一种方法可以使用上述方法返回的scrollinfo导出可滚动区域的实际像素
public struct ScrollInfo
{
public uint cbSize;
public uint fMask;
public int nMin;
public int nMax;
public uint nPage;
public int nPos;
public int nTrackPos;
}
可能需要
GetClientRect
“检索窗口客户端区域的坐标。客户端坐标指定客户端区域的左上角和右下角。由于客户端坐标相对于窗口客户端区域的左上角,因此左上角的坐标为(0,0)。”获取Rect的问题是它只有屏幕上的像素。可能您需要GetClientRect
“检索窗口客户端区域的坐标。客户机坐标指定客户机区域的左上角和右下角。因为客户机坐标是相对于窗口客户机区域的左上角的,所以左上角的坐标是(0,0)。“获取Rect的问题是它在屏幕上的唯一像素。