MFC多视图与重绘效率
生活随笔
收集整理的這篇文章主要介紹了
MFC多视图与重绘效率
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
MFC多視圖與重繪效率
- CDocument::UpdateAllViews(CView* pSender,LPARAM lHint,CObject* pHint):通知所有與CDocument同源的CView窗口,即發(fā)送WM_PAINT。
- View::OnUpdate(CView* pSender,LPARAM lHint,CObject* pHint)?局部重繪或全部重繪,通過Hint設(shè)置重繪區(qū)域,即計算出重繪局部,然后通過InvalidateRect()通知OnDraw()重繪;
- OnDraw():所有重繪操作都集中在在這里。
具體實現(xiàn)
1).定義一個hint數(shù)據(jù)類型,用于描述重繪數(shù)據(jù)局部
2).在View中改變Documen內(nèi)容時,產(chǎn)生一個hint對象,
3).調(diào)用UpdateAllViews,傳入?yún)?shù)hint;
4).改寫OnUpdate,利用hint重繪局部,提高重繪效率
5).hint根據(jù)實際情況可以以不同形狀,在hint內(nèi)部的區(qū)域都要 重繪。
如何計算一個矩形的交集:IntersectRect()
總結(jié)
以上是生活随笔為你收集整理的MFC多视图与重绘效率的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式——简介
- 下一篇: C++学习——类的多态