一个对话框重写OnPaint()和OnEraseBkgnd(),执行发现OnEraseBkgnd()比OnPaint()执行的次数多很多,但是执行OnPaint()前一定会执行OnEraseBkgnd()。项目中用GDI双缓冲,绘制对话框背景图片的时候,放在OnEraseBkgnd()会出现闪烁,放在OnPaint()里面就不会闪烁。
这种问题关系到这两个消息函数的的理解:特定找了一些资料,以作备查。
个人理解:
OnEraseBkgnd()的return CDialogEx::OnEraseBkgnd(pDC),是擦除背景的,如果不想擦除背景,可以字节return true。