【问题标题】:How to force CTreeCtrl not to scroll to the item when SelectItem function is called?调用 SelectItem 函数时如何强制 CTreeCtrl 不滚动到项目?
【发布时间】: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,我很惊讶,但它似乎有效

标签: c++ windows mfc


【解决方案1】:

您可以尝试在之前选择的项目上调用EnsureVisible。不过这可能会闪烁,因此您可以在进行新选择和 EnsureVisible 之前尝试使用 SetRedraw(FASLE)。

【讨论】:

    猜你喜欢
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    相关资源
    最近更新 更多