void CMultiDoc::DeleteContents() {
// ΠΡΠΈΡΠ°Π΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΡΠ΄Π°Π»ΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° arrayFig.
pointFigCenter.RemoveAll( );
// ΠΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ DeleteContents Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° CDocument
CDocument::DeleteContents();
}
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΎΡΡΠ°Π΅ΡΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Serialize ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. Π¨Π°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
//////////////////////////////////////////////////////////////
// CMultiDoc serialization
void CMultiDoc::Serialize(CArchive& ar) {
pointFigCenter.Serialize(ar);
}
ΠΠΎΡΡΡΠΎΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΡΠΉ ΡΠ°ΠΉΠ». Π£ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΊΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΊΠΎΠ½ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΊΠΎΠ½ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΊΠΎΠ½ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠΆΠ΅ Π½Π΅ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΆΠ΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΠ· ΠΌΠ΅Π½Ρ Window ΡΡΡΠΎΠΊΡ New.
ΠΡΠΊΡΠΎΠ΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΎΠΊΠΎΠ½ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π±ΡΠ΄ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΎΠΊΠ½Π°. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 1.14 ΠΌΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Multi, Π΅ΡΠ»ΠΈ Π² Π½Π΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π° Π½ΠΎΠ²ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Multi1 ΠΈ Multi2, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΊΡΡΡΡ Π΄Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΊΠ½Π° Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Multi2.
Π ΠΈΡ. 1.14. ΠΠΊΠ½ΠΎ Project Workspace, ΠΊΠ»Π°ΡΡ CMultiView
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΎΠΊΠ½Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½Ρ. ΠΡΠ»ΠΈ Π²Ρ Π²Π½Π΅ΡΠ΅ΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ, ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΡΠ²ΡΡΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΡΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ UpdateAllViews, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² ΠΊΠ»Π°ΡΡΠ΅ CDocument:
void UpdateAllViews(CView* pSender, LPARAM lHint = 0L, CObject* pHint = NULL);
ΠΠ΅ΡΠΎΠ΄ UpdateAllViews Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ CView::OnUpdate Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠΊΠΎΠ½ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠ½Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ°, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ pSender. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ pSender ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. ΠΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π΅ Π½Π°Π΄ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅.
ΠΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π²ΡΠ·Π²Π°Π½ΠΎ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌΠΈ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° pSender ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NULL. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠ·Π²Π°Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ OnUpdate Π²ΡΠ΅Ρ ΠΎΠΊΠΎΠ½ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π±Π΅Π· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ lHint ΠΈ pHint ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΠ΅ΡΠΎΠ΄Ρ OnUpdate ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ lHint ΠΈ pHint ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ , ΡΡΠΎΠ±Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°.
ΠΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ OnLButtonDown. ΠΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π²ΡΠ·ΠΎΠ² UpdateAllViews Π² Π½Π΅ΠΌ. Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ² pointFigCenter ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ»Π°Π³Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (ΠΌΠ΅ΡΠΎΠ΄ UpdateAllViews ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° SetModifiedFlag):
void CMultiView::OnLButtonDown(UINT nFlags, CPoint point) {
// β¦
// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ»Π°Π³ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
pDoc->SetModifiedFlag();
// Π‘ΠΎΠΎΠ±ΡΠ°Π΅ΠΌ Π²ΡΠ΅ΠΌ ΠΎΠΊΠ½Π°ΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΊΡΠΎΠΌΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±
// ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
pDoc->UpdateAllViews(this);
// ΠΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ OnLButtonDown Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° CView
CView::OnLButtonDown(nFlags, point);
}
ΠΠΎΡΡΡΠΎΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΠΎΠΊΠ½Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠΊΠ½Π°Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ Π΄ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π΄ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΡΠΈΠ³ΡΡΡ. ΠΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ° Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π° ΡΠ»Π°Π±ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ .
ΠΡΡ ΠΎΠ΄ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° UpdateAllViews ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π°Π΄ΠΎ Π΄ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ. Π ΠΏΠΎΡΠΎΠΌ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ OnUpdate ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΠΈΡΠΎΠ²ΡΠ²Π°Π»ΠΎ Π² ΠΎΠΊΠ½Π°Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΎΠ΄Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΡ ΡΠΈΠ³ΡΡΡ. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° UpdateAllViews ΠΌΠ΅ΡΠΎΠ΄Ρ OnUpdate ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ lHint ΠΈ pHint.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ OnUpdate:
virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ pSender ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·Π²Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΡΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π²ΡΠ΅ ΠΎΠΊΠ½Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ°, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NULL.
ΠΡΠΎΡΠΎΠΉ ΠΈ ΡΡΠ΅ΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ β lHint ΠΈ pHint ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ. ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° UpdateAllViews. ΠΡΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, ΡΠΎΠ³Π΄Π° ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0L ΠΈ NULL ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ΅ΡΠΎΠ΄ OnUpdate Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ CDocument::UpdateAllViews. ΠΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ OnInitialUpdate (Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ OnInitialUpdate).
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ OnUpdate ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° CView, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ Π²ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΠΊΠ½Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_PAINT (Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ InvalidateRect). ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ OnDraw.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ lHint ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ LPARAM ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ 32-Π±ΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ pHint ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° CObject. ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π²Ρ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° CObject, ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ UpdateAllViews.
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡ CObject, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° CObject, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ΅ΡΠ΅Π· ΡΡΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΎΡ CObject.
ΠΠΎΠ³Π΄Π° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ OnUpdate, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ pHint. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ IsKindOf ΠΊΠ»Π°ΡΡΠ° CObject. ΠΠ΅ΡΠΎΠ΄ IsKindOf ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ·Π½Π°ΡΡ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΆΠ΅ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠ³ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_LBUTTONDOWN ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ OnLButtonDown ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π° ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ UpdateAllViews ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π» ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΎΠΊΠ½Π°ΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ pointFigCenter ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°:
//////////////////////////////////////////////////////////////
// ΠΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_LBUTTONDOWN
void CMultiView::OnLButtonDown(UINT nFlags, CPoint point) {
// β¦
// ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΌΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π½ΠΎΠ²ΡΠΉ
// ΡΠ»Π΅ΠΌΠ΅Π½Ρ
pDoc->pointFigCenter.Add(point);
// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ»Π°Π³ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°
pDoc->SetModifiedFlag();
// ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ nNewFig ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ
// ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° pointFigCenter
int nNewFig;
nNewFig = pDoc->pointFigCenter.GetUpperBound();
// Π‘ΠΎΠΎΠ±ΡΠ°Π΅ΠΌ Π²ΡΠ΅ΠΌ ΠΎΠΊΠ½Π°ΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΊΡΠΎΠΌΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±
// ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
// ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ
pDoc->UpdateAllViews(this, nNewFig);
// ΠΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ OnLButtonDown Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° CView
CView::OnLButtonDown(nFlags, point);
}
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ OnUpdate ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ UpdateAllViews ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π» Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° pointFigCenter.
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° OnUpdate Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ClassWizard. ClassWizard ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΌΠ΅ΡΠΎΠ΄Π° OnUpdate, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΠ³ΡΡΡ Π² ΠΎΠΊΠ½Π΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ OnUpdate, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ UpdateAllViews. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½, Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ lHint ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 0, Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ pHint β NULL ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π²ΡΠ·ΡΠ²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ InvalidateRect ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ Π²ΡΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ:
//////////////////////////////////////////////////////////////
// CMultiView
void CMultiView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) {
// ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ
// ΠΎΠΊΠ½Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°
CMultiDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// ΠΡΠ»ΠΈ lHint ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ