vc滚动条控件的一件怪事?!是微软的bug吗?
info.nMax = 100;
info.nPage=0;默认值
maxpos = pScrollBar->GetScrollLimit();
maxpos=101;???
跟踪调试到
int CWnd::GetScrollLimit(int nBar)
{
int nMin, nMax;
GetScrollRange(nBar, &nMin, &nMax);
SCROLLINFO info;
if (GetScrollInfo(nBar, &info, SIF_PAGE))
{
nMax -= __max(info.nPage-1,0);
}
return nMax;
}
其中:nMax -= __max(info.nPage-1,0);返回 101
难道 __max(info.nPage-1,0) 取-1 ???
info.nPage>0 时, 如=20
maxpos = pScrollBar->GetScrollLimit();
maxpos 为 81,正确!
我试着在自己的程序中加入__max(0-1,0),返回正确的结果:0