SetScrollInfo问题
int SetScrollInfo(_In_HWND hwnd,
_In_int fnBar,
_In_LPCSCROLLINFO lpsi,
_In_BOOL fRedraw
);
的fRedraw这个参数具体是干嘛用的。
switch (LOWORD(wParam))
{
// 用户点击滚动条左边的三角形
case SB_LINELEFT:
si.nPos -= 1;
break;
// 用户点击滚动条右边的三角形
case SB_LINERIGHT:
si.nPos += 1;
break;
// 用户点击滑块左边的滚动条轴
case SB_PAGELEFT:
si.nPos -= si.nPage;
break;
// 用户点击滑块右边的滚动条轴
case SB_PAGERIGHT:
si.nPos += si.nPage;
break;
// 用户拖动滚动条
case SB_THUMBTRACK:
si.nPos = si.nTrackPos;
break;
default:
break;
}
// 设置滚动条滑块的新位置
si.fMask = SIF_POS;
SetScrollInfo(hwnd, SB_HORZ, &si, FALSE);
为啥我把它改成FALSE时我改变了滑块的位置。。“滚动条是否被重画以反映变化“这句话貌似是成立的。
fRedraw这个参数表示是否立即重绘 为什么你不去查msdn呢。 好像蛮有道理的 freeparty 发表于 2015-3-16 05:53
为什么你不去查msdn呢。
那这个si.fMask = SIF_POS;
SetScrollInfo(hwnd, SB_HORZ, &si, FALSE);
位置具体是哪里跟新了位置的
885031918 发表于 2015-3-16 11:19
那这个si.fMask = SIF_POS;
SetScrollInfo(hwnd, SB_HORZ, &si, FALSE);
位置具体是哪 ...
仔细看视频就知道了 freeparty 发表于 2015-3-16 12:26
仔细看视频就知道了
你说的看api不行,估计你的看视频建议也不行。 885031918 发表于 2015-3-16 17:59
你说的看api不行,估计你的看视频建议也不行。
不行了你就自己去解决呀 zz 你改成FALSE 后 当你按键盘上或下时,窗口内容是重绘了,但是你的滚动条位置没有动。。这就是fRedraw的作用。。。:lol:本人新手,答错勿喷
页:
[1]