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

本文详细介绍了Windows控件重绘中的四个关键函数:OnPaint()用于响应WM_PAINT消息,是CWnd类的成员;OnDraw()是CView类的虚函数,通过OnPaint()调用来绘制视图;OnDrawItem()响应WM_DRAWITEM消息,处理子控件自绘;DrawItem()为子控件的虚函数,由OnDrawItem()调用以实现自定义绘制。这四个函数在不同的场景下协同工作,实现控件的定制化显示。

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值