首页 > 其他 > 详细

设置滚动条向下滚动

时间:2014-12-02 16:41:14      阅读:276      评论:0      收藏:0      [点我收藏+]

场景:

在文本框中打印日志,或向ListCtrl中插入数据时,怎么样可以把滚动条时时滚动到最后一行,这样便可看到添加的新数据内容。


1.  文本框

方法I:

CWnd  *pWnd = GetDlgItem(IDC_EDIT1);
HWND g_hLog = pWnd->GetSafeHwnd();
::SendMessage(g_hLog, WM_VSCROLL, MAKEWPARAM(SB_BOTTOM,0), 0);

方法II:

HWND g_hLog = ::GetDlgItem(m_hWnd, IDC_EDIT1);
::SendMessage(g_hLog, WM_VSCROLL, MAKEWPARAM(SB_BOTTOM,0), 0);

方法III:

CWnd* g_CWnd = GetDlgItem(IDC_EDIT1);
int nLineCount = ((CEdit*)g_cWnd)->GetLineCount();
((CEdit*)g_cWnd)->LineScroll(nLineCount);


2. ListCtrl

方法I:

加完数据后执行:  
m_ListCtrl.SendMessage(WM_VSCROLL, SB_BOTTOM, NULL);  
或全局
::SendMessage(g_hList, WM_VSCROLL, MAKEWPARAM(SB_BOTTOM,0), 0);

方法II:

m_ListCtrl.SetFocus();
  
//设置最后一行被选中  
m_ListCtrl.SetItemState(m_ListCtrlLog.GetItemCount() - 1,    
                        LVIS_ACTIVATING | LVIS_FOCUSED | LVIS_SELECTED,      
                        LVIS_SELECTED   | LVIS_FOCUSED);  
//滚动到最后一行  
m_ListCtrl.Scroll(CSize(0, 100000));  

方法III:

int nCount = m_ListCtrl->GetItemCount();
if (nCount > 0)
{
	m_ListCtrl->EnsureVisible(nCount - 1, FALSE);
}


设置滚动条向下滚动

原文:http://blog.csdn.net/jiangqin115/article/details/41679003

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!