MFC CCheckListBox 的垂直滚动条没有更新
Posted
技术标签:
【中文标题】MFC CCheckListBox 的垂直滚动条没有更新【英文标题】:MFC CCheckListBox's vertical scrollbar is not updated 【发布时间】:2016-11-07 19:36:34 【问题描述】:我不得不用 CCheckListBox 替换旧的 MFCSharpGrid 控件。
现在,在显示列表框的垂直滚动条后,它似乎将正确的事件(向上/向下和向上/向下翻页)发送到列表的客户区,并且允许鼠标滚轮滚动这在隐藏滚动条的情况下不可用。
但是,滚动条本身并没有更新:滚动客户区时拇指没有移动(甚至没有响应滚动条的滚动),并且拇指的大小与页面大小不成比例.
列表框的创建大致如下:
m_grid.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED | LBS_NOTIFY, m_gridRect, this, IDC_GRID1);
字符串被迭代添加,然后我们请求显示滚动条,如下所示:
m_grid.ShowScrollBar(SB_VERT, TRUE);
尝试将 SCROLLINFO 设置为 min/max/page-size 并没有解决位置更新问题。
我在这里错过了什么?
【问题讨论】:
【参考方案1】:您不想手动使用ShowScrollBar
。删除它,而是使用WS_VSCROLL
样式创建列表框。
m_grid.Create(WS_VSCROLL | LBS_HASSTRINGS | LBS_OWNERDRAWFIXED | LBS_NOTIFY, m_gridRect, this, IDC_GRID1);
这样当内容超过控件的长度时,你会自动获得一个垂直滚动条。
【讨论】:
以上是关于MFC CCheckListBox 的垂直滚动条没有更新的主要内容,如果未能解决你的问题,请参考以下文章