【问题标题】:How to make a CTreeCtrl item centrally displayed?如何使 CTreeCtrl 项目集中显示?
【发布时间】:2014-03-30 09:48:42
【问题描述】:

我知道函数EnsureVisible(HTREEITEM hItem) 可以通过滚动CTreeCtrl 控件的栏来显示hItem。但有时hItem要么显示在控件的顶部旁边,要么显示在控件的底部旁边,这对用户来说非常不友好。我希望该项目显示在控件的中间。有什么好的解决办法吗?

【问题讨论】:

    标签: c++ windows user-interface mfc


    【解决方案1】:

    您必须手动滚动CTreeCtrl。调用CTreeCtrl::EnsureVisible() 使项目可见,然后调用CTreeCtrl::GetItemRect() 检索项目的当前坐标,然后调用CWnd::ScrollWindow/Ex() 指定必要的偏移量以将项目放置在您想要的任何位置。

    【讨论】:

    • 很好的解决方案,除了最后一个函数ScrollWindows,我不知道怎么用它来滚动窗口,最后我用了::SendMessage(m_hWnd, WM_VSCROLL, SB_LINEUP, 0);
    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多