[DllImport("user32.dll")]
public static extern int SetScrollPos(IntPtr hwd,int nBar,int nPos,bool bRedraw);
public static extern int GetScrollPos(IntPtr hwd,int nBar);
public static extern bool GetScrollInfo(IntPtr hwd,int nBar,LPSCROLLINFO lpsi);
public static extern int SetScrollRange(IntPtr hwd,int nBar,int nMinPos,int nMaxPos,bool bRedraw);
public struct LPSCROLLINFO
{
uint size;
int nMin;
int nMax;
uint nPage;
int nPos;
int nTrackPos;
}
hwd:滚动条或带有滚动条窗体的句柄.
nBar:指定滚动条将被设置,可以是以下值:
SB_CTL: 设置滚动条控制中滚动翻页盒位置 2
SB_HORZ:设置窗体水平滚动条翻页盒位置 0
SB_VERT:设置窗体垂直滚动条翻页盒位置 1
SB_BOTH:设置窗体水平和垂直翻页盒位置 3
nPos:在滚动范围内指定翻页盒的新位置.
bRedraw:指定滚动条是否被重画.
返回值:若成功,返回值是滚动条翻页盒的前一个位置,若失败,返回0.
用SendMessage向窗体的滚动条发送滚动消息:
public static extern int SendMessage(IntPtr hwd,int wMsg,int wParam,int lParam);
例:TreeView中向窗体滚动条发送水平滚动消息
SendMessage(this.treeView1.Handle,WM_HSCROLL,SB_TOP,0);
WM_VSCROLL=0x115
WM_HSCROLL=0x114
SB_LINEDOWN=1 向下一格
SB_LINEUP=0 向上一格
SB_TOP=6 最左端
SB_BOTTOM=7 最底端
SB_PAGEUP=2 上一页
SB_PAGEDOWN=3 下一页