OnDraw函数是系统什么时候调用的?

dadafeng 2002-04-25 01:48:42
^_^
...全文
1559 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_20151 2010-06-01
  • 打赏
  • 举报
回复
多谢了,呵呵我也明白了
shawn_liu 2002-04-26
  • 打赏
  • 举报
回复
由于,程序初始化时,会调用ShowWindow以及UpdateWindow,而UpdateWindow会发送一个WM_PAINT消息给系统,因此,你加在OnDraw中的断点会在初始化时生效,又由于,AppWizard生成的程序框架中包含许多涉及发送WM_PAINT消息的函数,比如,当你调整窗口大小,使得客户区中的显示内容改变时,窗口的OnSize函数会发送WM_PAINT消息,此时OnDraw会被调用。所以,在客户区的显示内容改变,客户区的大小改变,客户区由隐藏到显示,以及诸如此类使客户区内容改变的操作,都会发送WM_PAINT消息,从而调用OnDraw。
lixiner 2002-04-26
  • 打赏
  • 举报
回复
不是哦,我试着再OnDraw里面加过一个断点,他好像是时时调用的!

那是因为调试窗口 和 程序运行窗口 来回切换的问题!最小化复原
也调用OnDraw(),

一个解决的笨方法是 把调试和运行窗口 平铺放置
这要看你显示器大小 和分辨率了!:)

dadafeng 2002-04-26
  • 打赏
  • 举报
回复
能再说得详细点嘛?
dadafeng 2002-04-26
  • 打赏
  • 举报
回复
多谢!
shawn_liu 2002-04-25
  • 打赏
  • 举报
回复
收到WM_PAINT消息时,调用OnPaint(),再由OnPaint()调用OnDraw(),WM_PAINT消息可以由你明确发送,使用诸如Invalidate()之类的函数。而某些API函数的调用也将顺带产生WM_PAINT消息。可以参考Platform SDK中关于WM_PAINT消息及相关内容的文档。
dadafeng 2002-04-25
  • 打赏
  • 举报
回复
不是哦,我试着再OnDraw里面加过一个断点,他好像是时时调用的!
xming076 2002-04-25
  • 打赏
  • 举报
回复
1、在屏幕需要重新绘制(比如改变窗口的大小等)
2、在文档的内容要打印时
被调用

16,471

社区成员

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

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

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