GetScrollInfo获取父控件滚动条信息,但返回值全是0。求指点。
我使用GetScrollInfo获取treeview滚动条信息的时候,返回值全是0。为什么?
下面是我的代码:
- C# code
SCROLLINFO si = new SCROLLINFO();si.cbSize = (uint)Marshal.SizeOf(si);si.fMask = (uint)ScrollInfoMask.SIF_ALL;WIN32.GetScrollInfo(this.Handle, (int)SBOrientation.SB_VERT, ref si)[DllImport("user32.dll")][return: MarshalAs(UnmanagedType.Bool)]public static extern bool GetScrollInfo(IntPtr hwnd, int fnBar, ref SCROLLINFO lpsi);[Serializable, StructLayout(LayoutKind.Sequential)]public class SCROLLINFO{ public uint cbSize; public uint fMask; public int nMin; public int nMax; public uint nPage; public int nPos; public int nTrackPos;}public enum ScrollInfoMask : uint{ SIF_RANGE = 0x1, SIF_PAGE = 0x2, SIF_POS = 0x4, SIF_DISABLENOSCROLL = 0x8, SIF_TRACKPOS = 0x10, SIF_ALL = (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS),}
其实我在另外一个项目里面也用过这个API,获取能成功,但是在我新建的工程里面使用这个API,返回值除了csize和fmask,其他全是0。为什么? 请大神指点指点啊!!!!!
[解决办法]
this.Handle 是TreeView的还是Form的?
那个Window Handle一定要用对,否则就不是你想要的东西了。
[解决办法]
你用spy++看看那个TreeView中的ScrollBar是不是有自己的Window Handle,如果是的话,要用那个而不是TreeView的Handle。
[解决办法]
this.Handle?,你要获取的是TreeView,应该用TreeView的handle