1006150804 发表于 2025-1-13 19:35:53

滚动条

case WM_SIZE:
                cxClient = LOWORD(lParam);
                cyClient = HIWORD(lParam);
                si.cbSize = sizeof(si);
                si.fMask = SIF_PAGE | SIF_RANGE;
                si.nMin = 0;
                si.nMax = NUM;
                si.nPage = cyClient / cyChar;
                SetScrollInfo(hwnd, SB_VERT, &si, TRUE);

这里SetScrollInfoTRUE跟FALSE 区别在哪里, 我两个都试了一下没看到哪里不一样

FishC 发表于 2025-1-13 19:36:04

在调用`SetScrollInfo`函数时,最后一个参数表示是否需要重绘滚动条(即更新滚动条的显示)。它的取值和影响如下:

- **TRUE**: 如果最后一个参数为`TRUE`,那么当滚动信息更新后,滚动条将被重绘。这通常用于当窗口大小或内容发生变化时,以确保滚动条反映新的状态。

- **FALSE**: 如果最后一个参数为`FALSE`,当滚动信息更新时,滚动条不会被重绘。这种情况适用于大量更新滚动条信息时,可以避免不必要的重绘操作,提高效率。

在某些场景下,界面的变化可能不直观,尤其是在窗口内容没有发生剧烈改变的情况下,你可能观察不到明显的区别。此外,如果程序在某个时刻自动刷新界面,你也可能看不到两者之间的差别。建议在复杂界面或动态变化较大的情形下进行测试,这样更容易看出区别。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 滚动条