setsCrollInfo()调用后滚动栏藏匿
Scroll bar hide after SetScrollInfo() call
我在滚动条上有问题。我正在尝试在刷新滚动栏之前保存滚动栏位置,然后再次设置保存的位置。我使用以下代码:
SCROLLINFO si;
GetScrollInfo(SB_VERT, &si);
//Then I do stuff related with refresh
SetItemCountEx((int)moElements.GetSize(), LVSICF_NOINVALIDATEALL);
// Then stuff that sort elements...
Invalidate();
SetScrollInfo(SB_VERT,&si);
之后,在没有滚动条的情况下显示了CListCtrl
(滚动栏只是隐藏在某个地方),并且在我选择并使用按钮向下移动列表后显示。什么可能导致这种行为?PS:如果我在Invalidate()
之前致电SetScrollInfo(SB_VERT,&si)
。
使用EnsureVisible
的方式部分工作。我可以使用EnsureVisible
,但是GetTopIndex
总是返回0
。
希望您的setScrollinfo和getsCrollinfo不是Windows API,因为Windows API将HWND作为您的第一个参数。
嗨,我想你应该这样做。
SCROLLINFO si = {};
si.cbSize = sizeof(SCROLLINFO);//This step is always required for backward compatibility
si.fMask = SIF_POS;
GetScrollInfo(Window,SB_VERT,&si);
//Do your stuff.
UINT scrollBarPos = si.nPos;//Save currentPos
SetScrollInfo(Window,SB_VERT,&si,true);
//true parameter will tell Windows to invalidate the screen and redraw.
//No need to call InvalidateRect.
相关文章:
- 使用一个考虑到std::map中键值的滚动或换行的键
- QScrollArea:由垂直滚动条引起的水平滚动条
- 跟踪滚动条上的鼠标事件
- 如何在不使用滚动条的情况下使视图更改
- 如何为对象生成滚动效果?
- 如何模拟不同边数的骰子滚动?
- 如何初始化升压滚动窗口累加器?
- 实现包含多个 QQuickPaintedItems 的 QQuickView 的滚动
- 通过水平滚动条更改标签
- 如何防止 Windows 控制台上的回车键自动滚动
- Qt:无法直接为带有子项的小部件添加滚动条
- OnVScroll : 从 CSpinButtonCtrl 或垂直滚动条调用?
- win32 滚动条在 C/C++ 程序中不起作用
- 为什么玩家控制器"own"偏航俯仰和滚动,但角色"owns"它的位置?
- 外观 MFC 滚动条
- 我在QChartView中找不到缩放图形的鼠标滚轮滚动事件
- 如何使用C++获取/设置OBS中的垂直滚动过滤器属性?
- 停止 QTextCursor::insertText() 修改 QTextDocument 滚动条范围
- 如何在控制台应用程序中添加滚动功能以显示更大的输入
- setsCrollInfo()调用后滚动栏藏匿