问一下有关ondraw()的问题!!

harrot 2000-05-17 10:56:00
我建立了一个带滚动条的视,我想问的是当滚动条滚动时,ondraw函数会被调用么?
我在Ondraw中加入AfxMessageBox(),当滚动条滚动时都会被执行,可是我调用的
pDC->TextOut();好象不被执行,我觉得很奇怪,希望那位能帮我解决这个问题,也许是我对一些基本概念还不是很清楚,希望高手指点!
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
harrot 2000-05-19
  • 打赏
  • 举报
回复
比方说我在OnDraw()里头用
pDC-〉textout(x,y,str);
当滚动条滚动时,x,y是随便的数字)
为什么会跟着滚动条滚动呢?
而我在别的事件里,象onmousemove中,
我用textout()函数,却始终是在(x,y)
处显示?
Kenny 2000-05-19
  • 打赏
  • 举报
回复
这是因为WM_PAINT消息是SCROLLVIEW在VC++运行库在C++级封装的函数(不是MFC类库中封装的),OnDraw()亦然。它们是微软的杰作,已对窗口的GDI设备环境进行的SCROLL处理。因此,我说建议你处理WM_PAINT消息,在其中调用OnDraw(),但在OnDraw()中不要调父类的OnDraw()函数。这样就不会出现你所说的问题了。
Kenny 2000-05-18
  • 打赏
  • 举报
回复
劝你使用WM_PAINT,在OnPaint()中调用OnDraw(&dc)。否则你就要取得窗口的ScrollPos,并计算你想写内容的Coordinates, 再调用TextOut了。
panacea 2000-05-18
  • 打赏
  • 举报
回复
会调用Ondraw进行刷新
什么叫不被执行?是结果没有显示吗?查看一下dc,是否刷新过。
chen_qin 2000-05-18
  • 打赏
  • 举报
回复
你是否添加了WM_PAINT的消息函数?
如果是,在OnPaint()函数中将OnDraw()屏蔽掉了。
xubin_sh 2000-05-18
  • 打赏
  • 举报
回复
给我看一下代码可以吗?

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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