Report样式的CListView无法滚动到指定行 本帖最后由 firefly3233 于 2011-12-14 18:02:30 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把WM_VSCROLL消息响应函数贴出来看看? 不是这个代码有问题。是因为成功不了,我只简单重载一下,来查看参数值,是默认的。void MyListCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){ CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);} CListCtrl控件自带的滚动条并不是CScrollBar控件,而是自己画上去的假窗口,因此实际上是通过CListCtrl的 GetScrollInfo和SetScrollInfo函数完成了滚动条位置信息的查询和设置.调用SetScrollInfo试试.如果是CListBox和CTree,这样调用SendMessage(WM_VSCROLL, MAKELONG(SB_THUMBPOSITION, 10),NULL);都是可以,楼主可以试试看? 假窗口?有WM_HSCROLL和WM_VSCROLL样式的窗口,当内容超过满过窗口大小时,会自动加上滚动条的.我用SetScrollPos(m_hWnd, SB_VERT, 100)试过了,可以设置滚动条到100行的位置,但窗口的内容还是原样不动的。我也知道别的控件,可以用SB_THUMBPOSITION的,但不知ListView为啥不行?一行,一页,到底,都没问题呀?可能还是有原因的,我想应该能解决的。 强制刷新不行的。LISTVIEW里有个Scroll方法,估计是达到上述要求,才专设的。我用了,确实管用: int i = 100; CRect rc; GetItemRect(i - 1, &rc, LVIR_BOUNDS); Scroll(CSize(0, rc.top)); EnsureVisible是可以,但如果是向下滚,要到达的项只会显示在最底部,向上滚,才会显示在顶部。我要的是始终显示在顶住(以引起人注意)用以下方法可以解决: int i = 100; CRect rc; GetItemRect(i - 1, &rc, LVIR_BOUNDS); Scroll(CSize(0, rc.top)); mfc月历控件 如何连接access数据库 如何获得factory mac address? 关于2个对话框的问题 关与VC程序对网站发送请求的简单问题 如果dll中有类似fopen时,怎样将文件包含在dll中而不影响主程序 保存、读取CObject对象(送分) 请问在VC中是否有API函数或其他方法是可以直接读取某一个盘的所有目录和文件的? 谁能帮俺看一下这个问题? 就这么几句代码,AfxMessageBox怎么就不生成警告窗口呢? 高手请进! 如何准确获取firefox加载一个网页的时间 MFC中如何在界面上显示GIF格式的图片(动态的图片)?
是因为成功不了,我只简单重载一下,来查看参数值,是默认的。
void MyListCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{ CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
}
调用SetScrollInfo试试.如果是CListBox和CTree,这样调用
SendMessage(WM_VSCROLL, MAKELONG(SB_THUMBPOSITION, 10),NULL);
都是可以,楼主可以试试看?
我用SetScrollPos(m_hWnd, SB_VERT, 100)试过了,可以设置滚动条到100行的位置,但窗口的内容还是原样不动的。
我也知道别的控件,可以用SB_THUMBPOSITION的,但不知ListView为啥不行?一行,一页,到底,都没问题呀?可能还是有原因的,我想应该能解决的。
CRect rc;
GetItemRect(i - 1, &rc, LVIR_BOUNDS);
Scroll(CSize(0, rc.top));
我要的是始终显示在顶住(以引起人注意)
用以下方法可以解决: int i = 100;
CRect rc;
GetItemRect(i - 1, &rc, LVIR_BOUNDS);
Scroll(CSize(0, rc.top));