重绘控件中OnPaint、OnDraw、OnDrawItem和DrawItem的区别

=============================================================================================================

OnPaint和OnDraw

OnPaint()是CWnd类的成员,负责响应WM_PAINT消息。

OnDraw()是CView类的成员,它不响应消息,不过它通过OnPaint()来调用OnDraw()。OnDraw()是虚函数,需要被重载。

=============================================================================================================

OnDrawItem和DrawItem

OnDrawItem()是CWnd类的成员,负责响应WM_DRAWITEM消息。当子控件有自绘属性并且需要重绘它时,父窗口就调用OnDrawItem()。

DrawItem()是虚函数,需要在子控件类重载它。它是通过父窗口调用OnDrawItem()函数来调用子控件的DrawItem()。

=============================================================================================================

OnPaintOnDrawItem

OnPaint()和OnDrawItem()的范畴不同,OnPaint()可以画整个窗口,而OnDrawItem()只能画窗口中的子控件。

=============================================================================================================

文章参考自:http://blog.csdn.net/liulina603/article/details/7645143


你可能感兴趣的:(C++)