如何自绘对话框的滚动条

wanyyl2353406 2011-11-03 03:28:05
在对话框中重载void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)时,对话框调用的是默认的滚动条,我如何替换默认的滚动条,而让他显示我自绘(贴图)的滚动条控件呢?
...全文
219 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuanxuan683 2011-11-28
  • 打赏
  • 举报
回复
查看Visual C++面向对象程序设计
向立天 2011-11-28
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
allen_lanyuhai 2011-11-04
  • 打赏
  • 举报
回复
介绍一个动态显示滚动条的方法:当显示超出范围时,就显示滚动条,当显示没超出范围时,就不显示滚动条..
绘制对话框滚动条其实可以不用先写好一个滚动条的类,然后再把它放进对话框当中,其实可以通过设置左边滚动条,然后通过WM_NCCALSIZE这个消息去调整客户区,实现把左边滚动条覆盖掉,然后,留出右边绘制滚动条的位置,最后通过WM_NCPAINT这个消息去绘制右边留出来的位置,在留出来的位置上,把滚动条画上去,当然做到这里,只是把滚动条画了上去...还没实现滚动的上下移动..要实现这样的功能,还要添加WM_MOUSEMOVE,WM_LBUTTONDOWN,WM_VSCROLL,WM_KETDOWN这几个消息和重载WindowProc这个虚函数,在WindowProc这个虚函数中对LB_ADDSTRING,LB_DELETESTRING这两个消息进行处理...哦,对了,还要新建一个GetVScroll()这个函数,然后在OnNcPaint()函数中调用这个函数,用这个函数对滚动条进行判断...有滚动条就画就返回真,画滚动条,返回值是FALSE,就不画滚动条...具体就是这样子了..
schlafenhamster 2011-11-03
  • 打赏
  • 举报
回复
即不要“ WS_VSCROLL | WS_HSCROLL
猿创日记 2011-11-03
  • 打赏
  • 举报
回复
把对话框的滚动条屏蔽掉,创建的时候不要滚动条熟悉。然后画上你自己的滚动条。
wanyyl2353406 2011-11-03
  • 打赏
  • 举报
回复
我自绘了一个滚动条的类,但是怎么替换对话框默认的滚动条呢?
only_delusion 2011-11-03
  • 打赏
  • 举报
回复
WM_NCPaint 裁剪区域 绘制... 精确度难把握,最好能自己写一个滚动条类,codeproject上有一些例子 可以去看看

15,979

社区成员

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

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