【问题标题】:scroll clistviewctrl in wtl, when new item is added添加新项目时,在 wtl 中滚动 clistviewctrl
【发布时间】:2011-07-27 21:48:51
【问题描述】:

当添加新项目时,我想滚动到列表视图的末尾。我正在使用来自 WTL 的 CListViewCtrl。这是我添加新项目和滚动的功能:

void CMainDlg::addMessage(CString msg)
{
    m_wndList.InsertItem ( n++, msg);
    SIZE size;
    size.cx = 0;
    size.cy = n;
    m_wndList.Scroll(size);
}

n 只是一个全局变量:

int n = 0;

该功能有效,除了根本不滚动。

我在 wtl 中查看了Scroll 的来源,看起来不错:

BOOL Scroll(SIZE size)
{
        ATLASSERT(::IsWindow(m_hWnd));
        return (BOOL)::SendMessage(m_hWnd, LVM_SCROLL, size.cx, size.cy);
}

那么为什么它不滚动呢?我试过n+1等...

【问题讨论】:

    标签: c++ winapi listview wtl


    【解决方案1】:

    是的,您按像素滚动。请改用EnsureVisible 函数(它发送LVM_ENSUREVISIBLE)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-05
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多