如何重绘在CScrollView中的ScrollBar

xuximail 2009-12-16 09:11:54
RT
...全文
175 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwgddx 2009-12-16
  • 打赏
  • 举报
回复
首先你要写一个滚动条类, 也可以网上找,很多的,要求就是可以隐藏系统自带滚动条,然后截获滚动条消息,绘制自己的滚动条并显示.

然后需要在scrollviiew中重载,并返回自己定义的滚动条.
CScrollBar* CDI_RptView::GetScrollBarCtrl(int nBar) const
{
return ((CSplitFrame*)GetParent())->GetScrollBar(nBar);//因为需要在父窗口定义,
}

在父窗口定义好自自己写的滚动条对象, 还要做的就是在ONSIZE里根据滚动条的显示与否来改变VIEW的大小空出滚动条的位置18象素.
还有就是在父窗口接收OnHScroll等滚动条消息并发送到VIEW窗口.

不知道这样说明白不?
fandh 2009-12-16
  • 打赏
  • 举报
回复
那就不要用scrollviiew,直接用cview,然后添加scrollbar
不过,要考虑的问题非常多!
xuximail 2009-12-16
  • 打赏
  • 举报
回复
能不能帮我搜搜呢?我不知道怎么搜哦~
xuximail 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wwgddx 的回复:]
首先你要写一个滚动条类, 也可以网上找,很多的,要求就是可以隐藏系统自带滚动条,然后截获滚动条消息,绘制自己的滚动条并显示.

然后需要在scrollviiew中重载,并返回自己定义的滚动条.
CScrollBar* CDI_RptView::GetScrollBarCtrl(int nBar) const
{
return ((CSplitFrame*)GetParent())->GetScrollBar(nBar);//因为需要在父窗口定义,
}

在父窗口定义好自自己写的滚动条对象, 还要做的就是在ONSIZE里根据滚动条的显示与否来改变VIEW的大小空出滚动条的位置18象素.
还有就是在父窗口接收OnHScroll等滚动条消息并发送到VIEW窗口.

不知道这样说明白不?
[/Quote]

明白倒是明白 我去查一下

15,980

社区成员

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

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