CListCtrl 头几行出现空白的奇怪问题。

dibotiger 2009-12-07 12:59:47
这个问题考验的是我的表述能力了。呵呵,如果有遇到过的,应该可以理解我在说什么。


界面布局和基本情况:

mainfrm用spliterwnd切割成上下两个子窗口,这两个子窗口都是列表栏,关联的是clistctrl类。

下面的子窗口暂称为messagelist,用来输出一些程序运行的结果,且输出的结果会自动下移到最后一行。




遇到的问题:

如果输出的结果行数超过了messagelist子窗口可以看到的行数,比如,有10行的运行结果输出了,

但是,下面的这个列表只可以显示其中的5行。那这个时候,移动鼠标到分割栏,按住鼠标左键,重新

调整窗口大小,让下面的子窗口变得更大,以显示更多的行数,奇怪的事情就出现了,这个列表栏的头几

行会出现了空白行的情况。


同样以上的情况,如果我重新调整窗口大小以前(即按住分割栏,移动鼠标前),手动先把messagelist里的输出

结果滚动回第一条,让第一条可见,然后再调整窗口大小,则不会出现以上情况。


请大家赐教。

另外,我怎么简单地截获m_Splitter->RecalcLayout()发生时的消息?

GOOGLE半天,发现其只会在完成向子窗口发送WM_SIZE事件。而我希望的是在发生时,也就是鼠标按住分割栏时就能截获。






...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dibotiger 2009-12-08
  • 打赏
  • 举报
回复
楼上的两位的方法都试过了,都不行。
dvlinker 2009-12-07
  • 打赏
  • 举报
回复
在OnSize函数中将CListCtrl列表InValidate一下,试试~
muzizongheng 2009-12-07
  • 打赏
  • 举报
回复
你调用listctlr的Update(0); 试试.

不行再问我.
dibotiger 2009-12-07
  • 打赏
  • 举报
回复
messagelist子窗口当然有scroll,不然,它怎么自动下移到最后一行呢?
fandh 2009-12-07
  • 打赏
  • 举报
回复
个人觉的,你加个scroll在clistctrl里面,难道不行?
M_S_D_N 2009-12-07
  • 打赏
  • 举报
回复
截图上来瞧瞧。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧