Microsoft Foundation Class (MFC)
description
Transcript of Microsoft Foundation Class (MFC)
![Page 1: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/1.jpg)
Microsoft Foundation ClassMicrosoft Foundation Class(MFC)(MFC)
Ku-Yaw ChangKu-Yaw [email protected]@mail.dyu.edu.tw
Assistant Professor, Department of Assistant Professor, Department of Computer Science and Information EngineeringComputer Science and Information Engineering
Da-Yeh UniversityDa-Yeh University
![Page 2: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/2.jpg)
222004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
OutlineOutline
Application WizardApplication Wizard Microsoft Visual C++.Net 2003Microsoft Visual C++.Net 2003
Document-ViewDocument-View CView::GetDocumentCView::GetDocument CView::OnDrawCView::OnDraw
Device Contexts (DC)Device Contexts (DC)
Using CDCUsing CDC
![Page 3: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/3.jpg)
332004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Application WizardApplication Wizard
Step OneStep One
![Page 4: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/4.jpg)
442004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Application WizardApplication Wizard
Step TwoStep Two
2.1.
3.
![Page 5: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/5.jpg)
552004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Application WizardApplication Wizard
Step ThreeStep Three
![Page 6: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/6.jpg)
662004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Application WizardApplication Wizard
Step FourStep Four
![Page 7: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/7.jpg)
772004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Application WizardApplication Wizard
Step FiveStep Five
![Page 8: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/8.jpg)
882004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Application WizardApplication Wizard
Step SixStep Six
![Page 9: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/9.jpg)
992004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Application WizardApplication Wizard
![Page 10: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/10.jpg)
10102004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Document-ViewDocument-View
![Page 11: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/11.jpg)
11112004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Document-ViewDocument-View
![Page 12: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/12.jpg)
12122004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
GetDocumentGetDocument
![Page 13: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/13.jpg)
13132004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
OnDrawOnDraw
![Page 14: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/14.jpg)
14142004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Document-ViewDocument-View
CDocumentCDocument UpdateAllViewsUpdateAllViews
CViewCView InvalidateInvalidate
![Page 15: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/15.jpg)
15152004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Device ContextsDevice Contexts
Device Contexts (DC)Device Contexts (DC) DisplayDisplay PrinterPrinter
Direct v.s. IndirectDirect v.s. Indirect
MemoryMemory InformationInformation
D1 D2 P1 D1 D2 P1
DC
DR1 DR2 DR3
![Page 16: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/16.jpg)
16162004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Device ContextsDevice Contexts
Device Context functionsDevice Context functions GetDC()GetDC() ReleaseDC()ReleaseDC() … … (see MSDN)(see MSDN)
HDC vs. CDCHDC vs. CDC HDC: Win32 SDKHDC: Win32 SDK CDC: MFCCDC: MFC
![Page 17: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/17.jpg)
17172004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Using CDCUsing CDC
void CF12345678View::OnDraw(CDC* void CF12345678View::OnDraw(CDC* /*pDC*//*pDC*/)){{
CF12345678Doc* pDoc = GetDocument();CF12345678Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);ASSERT_VALID(pDoc);if (!pDoc)if (!pDoc)
return;return;
// TODO: // TODO: 在此加入原生資料的描繪程式碼在此加入原生資料的描繪程式碼}}
![Page 18: Microsoft Foundation Class (MFC)](https://reader034.fdocuments.net/reader034/viewer/2022050723/568158f4550346895dc6308a/html5/thumbnails/18.jpg)
18182004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design
Using CDCUsing CDC
void CF12345678View::OnDraw(void CF12345678View::OnDraw(CDC* pDCCDC* pDC)){{
CF12345678Doc* pDoc = GetDocument();CF12345678Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);ASSERT_VALID(pDoc);if (!pDoc)if (!pDoc)
return;return;
CPen penRed(PS_SOLID, 1, RGB(255, 0, 0));CPen penRed(PS_SOLID, 1, RGB(255, 0, 0));CPen * pOldPen;CPen * pOldPen;pOldPen = pDC->SelectObject(&penRed);pOldPen = pDC->SelectObject(&penRed);pDC->SelectStockObject(HOLLOW_BRUSH);pDC->SelectStockObject(HOLLOW_BRUSH);pDC->Ellipse(100, 100, 200, 200);pDC->Ellipse(100, 100, 200, 200);pDC->SelectObject(pOldPen);pDC->SelectObject(pOldPen);
}}