OnPaint()与OnDraw()这两个函数有什么区别? OnPaint()与OnDraw()这两个函数有什么区别?多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/tracing/archive/2008/08/21/2806156.aspx http://blog.csdn.net/tracing/archive/2008/08/21/2806156.aspx这个说的很明白了,建议收藏 MFC的viewcore.cpp中的源代码void CView::OnPaint(){ CPaintDC dc(this); OnPreparDC(&dc); OnDraw(&dc); }从以上代码中很容易看出,CView的WM_PAINT消息响应函数OnPaint()会自动调用CView::OnDraw(),作为开发者,可以通过简单的OnDraw()的重载实现对WM_PAINT的处理 CView的WM_PAINT消息响应函数OnPaint()会自动调用CView::OnDraw() OnPaint 只重绘无效区OnPaint 重绘所有要重绘的区域 简单的说OnDraw()是被OnPaint,OnPrint等多个绘图函数调用的。OnDraw()里面实现一些与显示设备无关联的绘图语句。而OnPaint里面除了调用OnDraw()还有准备一些与显示器相关的设置代码 只要是派生自CWnd就能响应OnPaint消息,必须派生自CView才有OnDraw虚函数。 void CView::OnPaint(){ CPaintDC dc(this); OnPreparDC(&dc); OnDraw(&dc); //调用了OnDraw}OnPaint()是CWnd的类成员,同时负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,并且没有响应消息的功能。 [分享]网络编程中的小技巧,STL中map与hash_map的选择 无题 LogFont.lfHeight lfWidth 如何与字体对话框里的几号字对应? 为什么我的机子装不上vc了? 怎么去掉菜单和工具栏? 谁有196单片机cpu的自检程序,告诉方法也行,谢谢。 有关formview对话框中控件控制的问题?? 树型控件的实现(SDK) .net时代还有必要学MFC吗? 毕业设计急求灰度图像二值化算法 基础概念问题 请问在VS2008中,如何改变线程的优先级?
void CView::OnPaint()
{
CPaintDC dc(this);
OnPreparDC(&dc);
OnDraw(&dc);
}
从以上代码中很容易看出,CView的WM_PAINT消息响应函数OnPaint()会自动调用CView::OnDraw(),作为开发者,可以通过简单的OnDraw()的重载实现对WM_PAINT的处理
OnPaint 重绘所有要重绘的区域
OnDraw()里面实现一些与显示设备无关联的绘图语句。
而OnPaint里面除了调用OnDraw()还有准备一些与显示器相关的设置代码
{
CPaintDC dc(this);
OnPreparDC(&dc);
OnDraw(&dc); //调用了OnDraw
}OnPaint()是CWnd的类成员,同时负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,并且没有响应消息的功能。