关于滚动条GetScrollInfo问题??!!
.....................case WM_VSCROLL:
si.cbSize = sizeof(si);
si.fMask = SIF_ALL;
GetScrollInfo(hWnd, SB_VERT, &si);
TempPos = si.nPos;
switch (LOWORD(wParam))
{
case SB_LINEDOWN:
si.nPos += 1;
break;
}
si.fMask = SIF_POS;
SetScrollInfo(hWnd, SB_VERT, &si, TRUE);
//GetScrollInfo(hWnd, SB_VERT, &si); 这句不要行不行????!!!
if (si.nPos != TempPos)
{
}
return 0;
................
其中有一句GetScrollInfo能不要吗??!这句的注释看不懂什么意思。 这一句要的,因为下边要用到:
// 设置改变后的滚动条滑块位置
si.fMask = SIF_POS;
SetScrollInfo(hwnd, SB_VERT, &si, TRUE);
// 获得滚动条滑块的位置,由于窗口调整,它可能不是同一个值
GetScrollInfo(hwnd, SB_VERT, &si);
// 与此前的保存的值进行比较,如果不同则滚动窗口
if (si.nPos != iVertPos)
{
ScrollWindow(hwnd, 0, cyChar * (iVertPos - si.nPos), NULL, NULL);
UpdateWindow(hwnd);
} 小甲鱼 发表于 2016-1-7 14:38
这一句要的,因为下边要用到:
SetScrollInfo不是以经设置好si.nPos的值了吗?!
难道只有GetScrollInfo以后,si.nPos的值才可以用??
页:
[1]