2011-04-01 75 views
0

我想在添加新项目时滚动到列表视图的末尾。我正在使用WTL的CListViewCtrl。这是我对加入新的项目和滚动功能:在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等...

回答

2

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

相关问题