18
Microsoft Foundation Microsoft Foundation Class Class (MFC) (MFC) Ku-Yaw Chang Ku-Yaw Chang [email protected] [email protected] Assistant Professor, Department of Assistant Professor, Department of Computer Science and Information Engineering Computer Science and Information Engineering Da-Yeh University Da-Yeh University

Microsoft Foundation Class (MFC)

  • Upload
    nedaa

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Microsoft Foundation Class (MFC). Ku-Yaw Chang [email protected] Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University. Outline. Application Wizard Microsoft Visual C++.Net 2003 Document-View CView::GetDocument CView::OnDraw - PowerPoint PPT Presentation

Citation preview

Page 1: Microsoft Foundation Class (MFC)

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)

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)

332004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

Application WizardApplication Wizard

Step OneStep One

Page 4: Microsoft Foundation Class (MFC)

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)

552004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

Application WizardApplication Wizard

Step ThreeStep Three

Page 6: Microsoft Foundation Class (MFC)

662004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

Application WizardApplication Wizard

Step FourStep Four

Page 7: Microsoft Foundation Class (MFC)

772004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

Application WizardApplication Wizard

Step FiveStep Five

Page 8: Microsoft Foundation Class (MFC)

882004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

Application WizardApplication Wizard

Step SixStep Six

Page 9: Microsoft Foundation Class (MFC)

992004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

Application WizardApplication Wizard

Page 10: Microsoft Foundation Class (MFC)

10102004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

Document-ViewDocument-View

Page 11: Microsoft Foundation Class (MFC)

11112004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

Document-ViewDocument-View

Page 12: Microsoft Foundation Class (MFC)

12122004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

GetDocumentGetDocument

Page 13: Microsoft Foundation Class (MFC)

13132004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

OnDrawOnDraw

Page 14: Microsoft Foundation Class (MFC)

14142004/11/162004/11/16 Pattern-Oriented DesignPattern-Oriented Design

Document-ViewDocument-View

CDocumentCDocument UpdateAllViewsUpdateAllViews

CViewCView InvalidateInvalidate

Page 15: Microsoft Foundation Class (MFC)

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)

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)

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)

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);

}}