【发布时间】:2017-09-26 08:47:06
【问题描述】:
我的对话框中有简单的 CTreeCtrl。它只有两个深度,如下所示:
假设用户点击了“第三”节点使其被选中,然后他按下对话框上的按钮并执行下一个代码:
// m_tree is a dialog-based class member of CTreeCtrl type
HTREEITEM hItem = m_tree.GetSelectedItem();
if (hItem)
{
hItem = m_tree.GetNextSiblingItem(hItem);
if (hItem)
{
m_tree.SelectItem(hItem);
}
}
在我的示例中标签为“Fourth”的 hItem 之后,在树形控制窗口的底部变得可见:
如何强制树控件不向下滚动到所选项目?我只想选择它,仅此而已。
【问题讨论】:
-
您可以尝试在之前选择的项目上调用msdn.microsoft.com/en-us/library/tcee049y.aspx EnsureVisible。不过这可能会闪烁,因此您可以在进行新选择和 EnsureVisible 之前尝试使用 SetRedraw(FASLE)。
-
@VuVirt heh,我很惊讶,但它似乎有效