0

新しいアイテムが追加されたら、リストビューの最後までスクロールしたい。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;

この関数は、まったくスクロールしないことを除けば、機能します。

Scrollwtlでソースを調べましたが、問題ないようです。

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

では、なぜスクロールしないのですか?やってみたn+1、等…

4

1 に答える 1

3

はい、ピクセル単位でスクロールします。EnsureVisible代わりに関数を使用してください(送信します)LVM_ENSUREVISIBLE

于 2011-04-01T18:47:37.940 に答える