设置每个滚动条的拇指大小(水平和垂直)

时间:2017-05-26 05:34:15

标签: winapi mfc scrollbar

我正在尝试设置每个滚动条的拇指大小(水平和垂直)。

首先我初始化SCROLLINFO结构:

SCROLLINFO info{};
info.cbSize = sizeof(info);
info.fMask = SIF_PAGE;

然后我为每个滚动条调用SetScrollInfo函数:

info.nPage = m_Width;
SetScrollInfo(SB_HORZ,&info);
info.nPage = m_Height;
SetScrollInfo(SB_VERT,&info);

但只有垂直滚动条似乎会更新。

如果我交换执行顺序:

info.nPage = m_Height;
SetScrollInfo(SB_VERT,&info);
info.nPage = m_Width;
SetScrollInfo(SB_HORZ,&info);

然后只有水平滚动条似乎会更新。

知道这里究竟发生了什么吗?

尽管如此,我正在OnPaint例程中完成所有这些工作。

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该只从WM_SIZE处理程序设置页面大小,当然,还应该在虚拟空间大小发生变化时设置页面大小。