读书人

GetScrollInfo获取父控件滚动条信息

发布时间: 2012-08-28 12:37:01 作者: rapoo

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

读书人网 >C#

热点推荐