第12讲 Windows API

Similar documents
INTRODUCTION TO COM.DOC

MFC 2/e PDF GBK mirror - anyway solution MFC 1/e MFC 2/e

ebook50-14

ebook50-15

Microsoft Word - 新建 Microsoft Word 文档

《Visual C++简明教程》

untitled

bingdian001.com

FY.DOC

摘要本文主要讲述了在 VC 语言环境下, 编程实现通过 SimaticNet 提供的 OPC Server, 访问 PLC 中数据的步骤, 此方法同样适用于 WinCC 作为 OPC Server 时的数据访问 关键词 SimaticNet VC OPC WinCC Key Words Simati

ebook50-11

提问袁小兵:

ebook51-14

2/e 1998/04 MFC 1/e Windows MFC MFC 2/e 1998/ UNALIS 3/e 2/e 2/e 3/e 3/e MFC 2/e MFC 3/e MFC MFC 2/e VC5+MFC42 VC6+MFC421 MFC 2/e 1

概述

概述

Visual C++ 1 Page no. 1

教程:轻松玩转MFC文档视图架构编程

,, 1 ( ) 1 / CurrentSeries Int ConnectionString CString Style3D BOOL IsContinue Graph BOOL LegendType Int SeriesName CString SeriesColor OL E

新版 明解C++入門編

本科学生毕业论文

untitled

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Microsoft Word - CIN-DLL.doc

教育部高等学校教学

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

ebook

Microsoft Word - 11.doc

新・解きながら学ぶJava

The Analysis Of Basic MFC Program Running Principle

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

Microsoft Word - 实验3.doc

MFC: 计算器 目 录 一 需求分析 : 2 二 程序的主要功能 : 2 三 程序运行平台 : 2 四 程序类的说明 : 5 五 模块分析 : 5 六 存在的不足与编程体会 5 七 程序主要控件源代码 5 一 需求分析 为方便商场对货品信息的管理的自动化, 特设计此系统 由于 c++ 程序的可移植

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

epub83-1

VB程序设计教程

indows CE 1996 Semiconductor Industry Association (SIA) Windows CE Windows Embedded CE 6.0 Windows CE Windows Embedded CE 6.0 Micr

C 1

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

Microsoft Word - 01.DOC

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

Microsoft Word - ch04三校.doc


VC++ USB HID + C8051F340 入???.doc

範本檔

C/C++语言 - 运算符、表达式和语句

RunPC2_.doc

1.doc

RUN_PC連載_10_.doc

BizSpark 初 创 公 司 计 划 指 南 目 录 什 么 是 BizSpark?... 1 计 划 概 述... 1 计 划 结 构 和 角 色... 1 初 创 公 司 资 格... 3 使 用 BizSpark 的 产 品 和 联 机 服 务 的 示 例 :... 3 职 责... 5

untitled

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

CHAPTER VC#

一 专 业 名 称 专 业 名 称 : 会 计 二 入 学 要 求 与 基 本 学 制 入 学 要 求 : 初 中 毕 业 生 基 本 学 制 : 三 年 ; 其 中 前 二 年 为 在 校 学 习 时 间, 最 后 一 年 为 企 业 实 习 时 间 层 次 : 中 职 三 培 养 目 标 本 专

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

bingdian001.com

untitled

<4D F736F F D20A1B6BCC6CBE3BBFAB5D8CDBCD6C6CDBCA1B7C9CFBBFACAB5D1E9D6B8B5BCCAE92E646F63>

多層次傳銷與獎金系統

C H A P T E R 7 Windows Vista Windows Vista Windows Vista FAT16 FAT32 NTFS NTFS New Technology File System NTFS

_汪_文前新ok[3.1].doc

ebook 86-15

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)


全国计算机技术与软件专业技术资格(水平)考试

PowerPoint Presentation

Strings

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

Simulator By SunLingxi 2003

《大话设计模式》第一章

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63>

教 务 信 息 教 学 日 常 运 行 工 作 4 月 6 日, 教 务 部 高 丽 琴 老 师 参 加 南 昌 市 教 育 局 2016 年 中 小 学 教 师 资 格 认 定 工 作 培 训 会 2016 年 教 师 资 格 认 定 工 作 是 从 省 考 向 国 考 过 渡 后 的 第 一 次

计算机网络与经济(二).doc

Microsoft PowerPoint ?????????3 [Compatibility Mode]

游戏厅捕鱼技巧_天天酷跑游戏技巧 2048游戏技巧,游戏厅打鱼技巧_

Transcription:

UNIT 13 MFC E-MAIL nadinetan@163.com

MFC 2

MFC 3

MFC 4

5

6

7 1 MFC

1.1 MFC MFC Microsoft Foundation Class Windows mfc*.dll Windows MFC C++ 8

1.1 MFC MFC Microsoft Foundation Class MFC Windows Windows MFC OnPain() CWnd WM_PAINT MFC / 9

1.2 MFC MFC MFC Windows API MFC MessageBox() MFC Windows API C++CWnd API API CWnd 10

1.3 MFC Windows Microsoft MFC Windows C++ Windows Windows Windows Windows API Windows API Windows API Windows API ActiveX 11

1.4 MFC 1. 1989 Application Framework C++ AFX(Applicatin Framework GUI AFX 12

1.4 MFC 2. AFXMFC Windows API C++ Windows OS/2 Presentation Manager Apple Macintosh C++ Windows API Windows API Win16 MFC API Windows API 13

1.4 MFC AFX MFC AFX Windows MFC MFC Windows API AFX 14

1.4 MFC MFC MFC AFX AfxGetApp() AFX_IDS_APP_TITLE AFX_MSGMAP_ENTRY Windows APIAFX MFC MFC AFX Microsoft MFCSDK Windows 15

1.5 C++ MFC MFC MicroSoft MFC 16

1.5 C++ MFC MFC Windows MFC VC 17

1.6 MFC MFCMFC C MFC C C o l o r D i a l o g Class Color Dialog 18

19

20 2 MFC

2.1 MFC 1. MFC 200 2. MFC MFC 3. 4. MSDN hierarchy chart MSDN MFC 21

22 2.1 MFC

2.2 Cobject CObject CmdTargrt CWnd CObject MFC MFC MFCMFC 23

2.3 1 CCmdTarget CObject MFC CCmdTarget CView CWinApp CDocument CWnd CframeWnd CCmdTarget CCmdTargetCView CWinApp 24

2.3 2CWinApp MFCCWndApp VC Windows WinMain() CWinApp 1 CWinApp AfxGetApp CWinApp AfxGetResourceHabdle: 25

2.3 AfxGetAppName CWinApp m_pszexename 2 CWinApp m_pszappname m_ncmdshow m_pmainwnd 26

2.3 3 CWinApp LoadCursor LoadStandardCursor Windows windows.h IDC LoadIcon LoadStandardIcon Windows windows.h IDI OpenDocumentFile 27

2.3 4 CWinApp InitApplication InitInstance Windows Run OnIdle PreTranslateMessage TranslateMessage() DispatchMessage() 5 CWinApp SetDialogBkColor Enable3dConrtols 28

2.3 3CWinThread CWinApp CWinThread CWinApp 1 CWinThread m_hthread m_nthreadid ID m_pmainwnd 2 CWinThread GetMainWnd GetThreadPriority ResumeThread 29

30 2.3 4. / CDocTemplate CMultiDocTemplate (MDI) CSingleDocTemplate (SDI) CDocument CView

1. CWnd 2.4 CWndMFC CWnd Windows CWndCWnd Windows Windows createdestroywindow Windows (1) CWnd m_hwnd CWndHWND (2 CWnd Create CWnd PreCreateWindow CWnd 31 UNIT THIRTEEN Windows 2009-12-13

2.4 GetStyle SubclassWindow CWnd CWnd FromHandle CWnd GetSafeHand m_hwnd; NULL, NULL 3 CWnd EnableWindow GetActiveWindow SetActiveWindow SetFocus GetFocusCWnd 4 GetWindowPlacement 32

SetWindowPlacement MoveWindow CWnd SetWindowPos GetWindowRect CWnd GetClientRect CWnd 5 FindWindow GetTopWindow CWnd GetParent CWnd 2.4 GetDlgItem ID GetDescendantWindow ID UNIT THIRTEEN CenterWindow 2009-12-13 33

6 / 2.4 GetDC GetWindowDC ReleaseDC Invalidate ShowWindow 7 SetWindowText GetWindowText SetFont GetFont 8 GetScrollPos ScrollWindow 34

2.4 SetScrollPos SetScrollRange 9 GetMen SetMenu HiliteMenuItem 10 OpenClipboard GetClipboardOwner GetOpenCilpboardWindow 35

2.4 2 CFrameWnd 1 CFrameWnd SDI 2 CMDIFrameWnd MDI 3 CMDIChildWnd MDI 36

2.4 3 1 CView 2 CScrollView 3 CFormView 4 CRecordViewODBC 5 CEditView Windows 37

4 2.4 CWnd CDialog 1 CDialog 2 CCommonDialog 3 CFileDialog 4 CColorDialog 5 CFontDialog 6 CPrintDialog 38

2.4 5 Windows 1 CStatic 2 CButton 3 CEdit 39

2.4 4 CScrollBar 5 CSliderCtrl 6 CListBox 7 CComboBoxl 8 CBitmapButton 40

2.4 9 CAnimateCtrl Windows / AVI 10 CTreeCtrl 11 CListCtrl 4 41

6. 2.4 1 CControlBox MFC 2 CToolBar 3 CStatusBar 4 CDialogBar 5 CStatusBarCtrl 6 CToolBarCtrl Windows 42

2.5 Windows CObject 1 Windows VC 1 DECLARE_MESSAGE_MAP( ) 2 BEGIN_MESSAGE_MAP 3 END_MESSAGE_MAP() 43

2.5 2 CObject CRuntimeClass CObject IsKindOf CObject VC 1 DECLARE_DYNCREATE ( ) 2 IMPLEMENT_DYNCREATE 44

45 2.5 3 RUNTIME_CLASS CObject IsKindOf

2.5 4 CObject 1 CObject DECLARE_SERIAL 2 CObject IMPLEMENT_SERIAL 3 CObject Serialize MFC MSDN 46

47

48 3 MFC

49 3.1

50 3.1 MFC

3.2 1 LIB 2Windows DLL COM COM 51

3.2 3 VC Visual Studio IDE IE 4 Win32CreateProcess API SHELL API ShellExecute 5 MFC 52

3.3 53

3.4 MFC MFC 1 MFC SimpleDialogMfc 2 54

3.4 MFC 1. SimpleDialogMfc.vcproj VC++ VC 2. SimpleDialogMfc.h ( Resource.h) CSimpleDialogMfcApp 3. SimpleDialogMfc.cpp CSimpleDialogMfcApp 55

3.4 MFC 4. SimpleDialogMfc.rc Microsoft Windows RES VC 2052 5. res\simpledialogmfc.ico SimpleDialogMfc.rc 6. res\simpledialogmfc.rc2 VC 56

3.4 MFC 5. : SimpleDialogMfcDlg.h SimpleDialogMfcDlg.cpp - CSimpleDialogMfcDlg SimpleDialogMfc.rc VC 6. : StdAfx.h StdAfx.cpp SimpleDialogMfc.pch (PCH) StdAfx.obj 57

58 3.4 MFC 6. : Resource.h ID SimpleDialogMfc.manifest Windows XP.manifest

3.4 MFC // SimpleDialogMfc.h : PROJECT_NAME // #pragma once #ifndef AFXWIN_H #error " stdafx.h PCH " #endif #include "resource.h" // // CSimpleDialogMfcApp: // SimpleDialogMfc.cpp // 59

3.4 MFC class CSimpleDialogMfcApp : public CWinApp { public: // // }; CSimpleDialogMfcApp(); public: virtual BOOL InitInstance(); DECLARE_MESSAGE_MAP() extern CSimpleDialogMfcApp theapp; c++, :(public, private, or protected) 60

3.4 MFC // SimpleDialogMfcDlg.h : // #pragma once // CSimpleDialogMfcDlg class CSimpleDialogMfcDlg : public CDialog { // public: CSimpleDialogMfcDlg(CWnd* pparent = NULL); // 61

3.4 MFC // // enum { IDD = IDD_SIMPLEDIALOGMFC_DIALOG }; protected: virtual void DoDataExchange(CDataExchange* pdx); // DDX/DDV protected: HICON m_hicon; // virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nid, LPARAM lparam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() 62

3.4 MFC }; public: BOOL m_vradio1; // public: afx_msg void OnBnClickedRadio3(); public: double m_vedit1; // 1 public: double m_vedit2; // 2 public: afx_msg afx_msg void OnEnChangeEdit1();// 1 public: afx_msg void OnEnChangeEdit2(); // 2 public: double m_result; // 3 public: afx_msg void OnBnClickedOk();//OK public: afx_msg void OnBnClickedRadio2();// 63

3.4 MFC // SimpleDialogMfc.cpp : // #include "stdafx.h" #include "SimpleDialogMfc.h" #include "SimpleDialogMfcDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CSimpleDialogMfcApp BEGIN_MESSAGE_MAP(CSimpleDialogMfcApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() 64

3.4 MFC // CSimpleDialogMfcApp CSimpleDialogMfcApp::CSimpleDialogMfcApp() { // TODO: // InitInstance } // CSimpleDialogMfcApp CSimpleDialogMfcApp theapp; 65

3.4 MFC // CSimpleDialogMfcApp BOOL CSimpleDialogMfcApp::InitInstance() { // Windows XP // ComCtl32.dll 6 // InitCommonControlsEx() INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(initctrls); // // InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); 66

3.4 MFC CWinApp::InitInstance(); AfxEnableControlContainer(); // // // // // // TODO: // SetRegistryKey(_T(" ")); CSimpleDialogMfcDlg dlg; m_pmainwnd = &dlg; 67

} 3.4 MFC INT_PTR nresponse = dlg.domodal(); if (nresponse == IDOK) { // TODO: // } else if (nresponse == IDCANCEL) { // TODO: // } // FALSE // return FALSE; 68

3.4 MFC // SimpleDialogMfcDlg.cpp : // #include "stdafx.h" #include "SimpleDialogMfc.h" #include "SimpleDialogMfcDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif 69

3.4 MFC // CAboutDlg class CAboutDlg : public CDialog { public: CAboutDlg(); // enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pdx); // DDX/DDV // protected: DECLARE_MESSAGE_MAP() UNIT THIRTEEN }; 2009-12-13 70

3.4 MFC CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pdx) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() 71

3.4 MFC // CSimpleDialogMfcDlg CSimpleDialogMfcDlg::CSimpleDialogMfcDlg(CWnd* pparent /*=NULL*/) { } : CDialog(CSimpleDialogMfcDlg::IDD, pparent), m_vradio1(false), m_vedit1(0), m_vedit2(0), m_result(0) m_hicon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 72

3.4 MFC void CSimpleDialogMfcDlg::DoDataExchange(CDataExchange* pdx) { } CDialog::DoDataExchange(pDX); DDX_Radio(pDX, IDC_RADIO1, m_vradio1); DDX_Text(pDX, IDC_EDIT1, m_vedit1); DDX_Text(pDX, IDC_EDIT2, m_vedit2); DDX_Text(pDX, IDC_EDIT3, m_result); DoDataExchange UpdateData DDX 73

3.4 MFC UNIT THIRTEEN END_MESSAGE_MAP() 2009-12-13 BEGIN_MESSAGE_MAP(CSimpleDialogMfcDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_RADIO3, &CSimpleDialogMfcDlg::OnBnClickedRadio3) ON_EN_CHANGE(IDC_EDIT1, &CSimpleDialogMfcDlg::OnEnChangeEdit1) ON_EN_CHANGE(IDC_EDIT2, &CSimpleDialogMfcDlg::OnEnChangeEdit2) ON_BN_CLICKED(IDOK, &CSimpleDialogMfcDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_RADIO2, &CSimpleDialogMfcDlg::OnBnClickedRadio2) ON_EN_CHANGE WM_COMMAND EN_CHANGE 74

3.4 MFC // CSimpleDialogMfcDlg BOOL CSimpleDialogMfcDlg::OnInitDialog() { CDialog::OnInitDialog(); //... // IDM_ABOUTBOX ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* psysmenu = GetSystemMenu(FALSE); 75

3.4 MFC if (psysmenu!= NULL) { CString straboutmenu; straboutmenu.loadstring(ids_aboutbox); if (!straboutmenu.isempty()) { psysmenu->appendmenu(mf_separator); psysmenu->appendmenu(mf_string, IDM_ABOUTBOX, straboutmenu); } } 76

3.4 MFC // // SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE); // // // TODO: } return TRUE; // TRUE 77

3.4 MFC void CSimpleDialogMfcDlg::OnSysCommand(UINT nid, LPARAM lparam) { } if ((nid & 0xFFF0) == IDM_ABOUTBOX) { } else { } CAboutDlg dlgabout; dlgabout.domodal(); CDialog::OnSysCommand(nID, lparam); nid SC_CLOSE 78

3.4 MFC // // / MFC // void CSimpleDialogMfcDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // SendMessage(WM_ICONERASEBKGND, reinterpret_cast<wparam>(dc.getsafehdc()), 0); // int cxicon = GetSystemMetrics(SM_CXICON); 79

3.4 MFC int cyicon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.width() - cxicon + 1) / 2; int y = (rect.height() - cyicon + 1) / 2; // dc.drawicon(x, y, m_hicon); } else { CDialog::OnPaint(); } UNIT THIRTEEN } 2009-12-13 80

3.4 MFC void CSimpleDialogMfcDlg::OnEnChangeEdit1() { // TODO: RICHEDIT // CDialog::OnInitDialog() // CRichEditCtrl().SetEventMask() // ENM_CHANGE } // TODO: // UpdateData(TRUE); 81

3.4 MFC void CSimpleDialogMfcDlg::OnBnClickedRadio2() { // TODO: UpdateData(TRUE); } 82

3.4 MFC 4MFC VC2005 ALI_F7 MFC DLL NFC 5 83

84 3.5 VC ClassView

3.4 MFC void CSimpleDialogMfcDlg::OnBnClickedOk() { // TODO: if(m_vradio1==0) m_result = m_vedit1 + m_vedit2; else if(m_vradio1==1) m_result = m_vedit1 - m_vedit2; else m_result = m_vedit1 * m_vedit2; UpdateData(FALSE); } 85

3.4 MFC void CSimpleDialogMfcDlg::OnEnChangeEdit2() { // TODO: RICHEDIT // CDialog::OnInitDialog() // CRichEditCtrl().SetEventMask() // ENM_CHANGE } // TODO: // UpdateData(TRUE); 86

87

4.1 88

4.1 SDI SDI MDI 89

4.2 90

4.3 MFC 1 91

92 4.3

4.3 MFC 2 SDI MFC CSingleDocTemplate MDI CMultiDocTemplate 93

4.4 MFC MFC Windows 4 CMyApp CMyWnd CMyViewCMyWnd CMyDoc CMyDoc 94

95 4.4 MFC

96 4.5 CObject CCmdTarget CDocument CDocument, CDocument Cdocument OnNewDocument Serialize SetModifiedFlag UpdateAllViews

97 4.5 CDocument OnNewDocument virtual BOOL OnNewDocument(); File New MFC MFC

98 4.5 OnNewDocument 1. MFC 2. 3.

99 4.5 OnNewDocument 4. 5. OnNewDocument

100 4.5 // BOOL CSDI_MouseDrawerDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; // TODO: // (SDI ) } return TRUE;

101 4.5 CDocument Serialize virtual void Serialize(CArchive& ar); ar Cobject << >>

102 4.5 // CSDI_MouseDrawerDoc void CSDI_MouseDrawerDoc::Serialize(CArchive& ar) { if (ar.isstoring()) { // TODO: } else { // TODO: } }

4.5 CDocument SetModifiedFlag virtual void SetModifiedFlag(BOOL bmodified=true); CDocument m_bmodeified SetModifiedFlag(TRUE); m_bmodeified MFC m_bmodeified MFC m_bmodeified 103

104 4.5 CPtrList m_viewlist; CView CView CDocument UpdateAllViews MDI UpdateAllViews

105 4.6 CObject CCmdTarget CWnd CView CView OnDraw OnUpdate

106 4.6 CView OnDraw virtual void OnDraw(CDC* PDC) = 0; WM_PAINT MFC

107 4.6 CPtrList m_viewlist; CView CDocument* m_pdocument CView OnDraw virtual void OnDraw(CDC* PDC) = 0; m_pdocument

CView OnUpdate 4.6 UpdateAllViews OnUpdate void CSDI_MouseDrawerView::OnUpdate(CView* psender, LPARAM /*lhint*/, CObject* /*phint*/) { // TODO: / ASSERT(pSender!= this); } // Invalidate(TRUE); WM_PAINT OnDraw 108

1. MFC API 2. MFC 3. MFC 4. MFC 109

110 16 1. 2. Windows API MFC Windows Form 3. 15 VC2005 363 11 10 Windows API MFC Windows Form VC2005 363 11 11