如何让ListCtrl的滚动条一直可见?

tongchi 2003-09-08 10:51:17
我在使用ListCtrl的Icon方式下,当item超出客户区时,滚动条会出现,当所有item在客户区内时,滚动条会消失,但是滚动条的有无会导致客户区的大小改变,我想使滚动条一直可见,就像EdidView中一样,请教各位该如何实现。
...全文
340 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongchi 2003-09-10
  • 打赏
  • 举报
回复
谢谢林平之,也谢谢其它网友的热心
bcpl 2003-09-09
  • 打赏
  • 举报
回复
参考
http://www.codeproject.com/useritems/skinlist.asp?target=list%7Cscrollbar
zwert 2003-09-09
  • 打赏
  • 举报
回复
是不是可以先将滚动条设为没有,与林大侠的方法相反,然后自己画一个(或者使用一个现成的activex滚动条控件)
flyelf 2003-09-08
  • 打赏
  • 举报
回复
使用EnsureVisible
tongchi 2003-09-08
  • 打赏
  • 举报
回复
那如果我想改变这个标准滚动条的外观,比如说通过子类化它的办法,该怎么做呢?是不是不能使用标准滚动条,只能自己在窗口中建一个CScrollBar?但是我又该如何通知窗口它的客户区有一部分被一个滚动条占据了呢?
bcpl 2003-09-08
  • 打赏
  • 举报
回复
ListCtrl窗口的滚动条是标准滚动条,不是滚动条控件,不可能通过GetScrollBarCtrl来获取一个CScrollBar
tongchi 2003-09-08
  • 打赏
  • 举报
回复
谢谢bcpl(林平之) ,你的办法很好用,但是我这儿又产生了新的一个问题,窗口具有WS_VSCROLL属性而出现的滚动条,不能用GetScrollBarCtrl()得到CScrollBar指针,也就无法对滚动条的外观进行修改,不知道有没有什么好的办法可以解决这个问题?
DarkShow 2003-09-08
  • 打赏
  • 举报
回复
同意小林子的。
bcpl 2003-09-08
  • 打赏
  • 举报
回复
大概是
if(!(this->GetStyle() & WS_VSCROLL))
{
ModifyStyle(0, WS_VSCROLL, SWP_DRAWFRAME);
::EnableScrollBar(m_hWnd, SB_VERT, ESB_DISABLE_BOTH);
}
if(!(this->GetStyle() & WS_HSCROLL))
{
ModifyStyle(0, WS_HSCROLL, SWP_DRAWFRAME);
::EnableScrollBar(m_hWnd, SB_HORZ, ESB_DISABLE_BOTH);
}

测试程序
http://my.6to23.com/cigarette/l2.zip

15,978

社区成员

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

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