untitled

Similar documents
untitled

最即時的Sybase ASE Server資料庫診斷工具

untitled

國中生物教師資訊行為之研究

untitled

untitled

untitled

untitled

untitled

無線網路技術應用於802



Microsoft PowerPoint - hci2-lecture7.ppt

untitled

untitled

untitled

誰是以馬內利?

untitled

untitled

untitled

untitled

Microsoft PowerPoint - hci2-lecture10.ppt

untitled

untitled

untitled

「藥物安全簡訊」出刊計畫

untitled

untitled

以非無塵室製程搭配高效能數值分析技術設計與製作生醫晶片用微流體元件

untitled

untitled

untitled



untitled

歯Lecture2.PDF

untitled

untitled

untitled

untitled

untitled

untitled

Microsoft PowerPoint - hci2-lecture3.ppt

untitled

untitled

4S 1차년도 평가 발표자료

5장 MFC기반 다지기

untitled

Microsoft PowerPoint - hci2-lecture3.ppt

untitled

ELOXATINE



untitled

untitled

untitled

untitled

untitled

untitled

untitled

untitled

untitled

untitled

6

心臟疾病細胞治療之臨床試驗簡介

untitled

untitled

untitled

untitled

語言學研究所籌備處

윈도우시스템프로그래밍

untitled

untitled

untitled

untitled

untitled

untitled

untitled

untitled

untitled

untitled

1 2 3 寧療 度 度 療 療 若 理 易 寧 練 力 度更 度 力 來 寧 率 力 療 率 療 行 度 寧 療 寧 例 說 度 省 力 領 理念 來 療 若 度 力 度 寧療 Key Words supervision training medical team

untitled

untitled



untitled

DocsPin_Korean.pages

untitled

Programming hwp

Dialog Box 실행파일을 Web에 포함시키는 방법

[제1강] 텍스트를 입력하세요

untitled

untitled



Microsoft PowerPoint - hci2-lecture5-messagemap.ppt



untitled

Microsoft Word - hci07-final-answer.doc

untitled

Programming hwp

untitled



untitled

Transcription:

MFC MFC MFC AppWizard 來 MFC MFC 類 了 類 Document/View MFC Visual C++ AppWizard MFC 不 力 亮 來 不 Document View 不 列 AppWizard View 類 CEditView 列 列 說 行 不 了 Document/View MFC Application Framework 靈 OLE Document OLE PaintBrush bitmap SoundRecorder Wave Excel Word MFC Document 料 料 MFC CDocument 說 理 料 類 類 理 料 MFC 不 料 CDocument 來 理 料 串列 列 Document CDocument 了 類 CView 不論什 料 料數 7-3a 數 理 數 數 串列 列 料 數 CView 了 料 了 View 料 滑 View Document ( 7-3b) 1

Document/View MFC 類 料 理 了 類 讀 CDocument Serialize 行 CView OnDraw OnPaint 行 兩 類 CMyDoc CMyView CMyDoc::Serialize CMyView::OnDraw 不 Document/View 什 良 例 File/Open Application Framework CMyDoc::Serialize 讀 Application Framework CMyView::OnDraw 料 來 狀 了 WM_PAINT Framework CMyView::OnDraw Display DC File/Print Framework CMyView::OnDraw Printer DC 了 Document/View MFC 了 流 路 MFC ㆒ Framework GUI 力 不 MFC Document/View 更 力 料 料 不 流 GUI 便 ocument/view Application Framework Visual C++ 來 IC 裡 女 了 利 Visual C++ Scribble step0 來 不 ㆒ 易 亂 #if#endif 例 // // ㆓ ㆒ 類.H.CPP 遼 六.CPP 六.H 利 Visual C++ Scribble step0 列 狀 列 Document/View ㆒ MFC MDI 類 2

利 Visual C++ Scribble step0 類 MFC 利 Visual C++ Scribble step0 7-4 Scribble step0 類 行 7-5 Document Template Document Template 念 Document/View 念 裡 View 切 了 View 立 MDI Document Frame SDI Document Frame OLE Document Frame 說 Document Frame View 料 料 料 料 1. Document 2. View 3. CMDIChildWnd Document Template 來 理 CMultiDocTemplate 不 料 例 TEXT BITMAP 不 Document Template BOOL CMyWinApp::InitInstance() CMultiDocTemplate* pdoctemplate; pdoctemplate = new CMultiDocTemplate( IDR_TEXTTYPE, RUNTIME_CLASS(CTextDoc), RUNTIME_CLASS(CChildFrame), RUNTIME_CLASS(CTextView)); AddDocTemplate(pDocTemplate); pdoctemplate = new CMultiDocTemplate( IDR_BMPTYPE, RUNTIME_CLASS(CBmpDoc), RUNTIME_CLASS(CChildFrame), RUNTIME_CLASS(CBmpView)); AddDocTemplate(pDocTemplate); 論 CMultiDocTemplate 參數 露了 CMultiDocTemplate::CMultiDocTemplate(UINT nidresource, CRuntimeClass* pdocclass,cruntimeclass* pframeclass, CRuntimeClass* pviewclass); 1. nidresource ID 例 IDR_SCRIBTYPE RC 不 類 ID 2. pdocclass Document 類 CDocument CRuntimeClass 3. pframeclass Child Frame 類 CMDIChildWnd CRuntimeClass 4. pviewclass View 類 CViewCRuntimeClass CRuntimeClass 什 CRuntimeClass 類 錄 串列 類 DECLARE_DYNAMIC DECLARE_DYNCREATE DECLARE_SERIAL static CRuntimeClass CMultiDocTemplate 參數 Document Template 了 類 CRuntimeClass Document Template 類 錄 document view document frame window CMultiDocTemplate 參數 IDR_SCRIBTYPERC MENU ICON 串 STRING 不 類 ID 串 串 '\n' 串 串 AppWizard Advanced Options 3

串 行 CDocTemplate::GetDocString 參數 索 1~7CDocTemplate 數 索 CDocTemplate 數 // in AFXWIN.H class CDocTemplate : public CCmdTarget enum DocStringIndex windowtitle, // default window title docname, // user visible name for default document filenewname, // user visible name for FileNew // for file based documents: filtername, // user visible name for FileOpen filterext, // user visible extension for FileOpen ; ; // for file based documents with Shell open support: regfiletypeid, // REGEDIT visible registered file type identifier regfiletypename // Shell visible Scribble 例 串 句 Document 料 View 料 CDocument 理 料 Collections Classes MFC 來 理 料 類 理 料數 CView 料 CDC CGdiObject 說 兩 兩 MFC 料 Document/View 7-3 說 View View Document View Document View Document 不 立 Document Frame Document Views 不 Views Document 不 View CScrollView 不 -- 料 理 讀 Serialization Serialize CMyDoc Serialize 料 立 讀 Scribble step1 例 step0 CScribbleDoc 什 數 說 不了什 料 Serialize AppWizard 串 來龍 弄 4

void CScribbleDoc::Serialize(CArchive& ar) if (ar.isstoring()) // TODO: add storing code here else // TODO: add loading code here 老說 void CScribbleView::OnDraw(CDC* pdc) CScribbleDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); void CScribbleDoc::Serialize(CArchive& ar) if (ar.isstoring()) // TODO: add storing code here else // TODO: add loading code here 老說 了 讀 料 料 兩 View Document Document Frame CView 來 View 1. Document Frame WM_PAINT View OnPaint OnPaint OnDraw 了 料 OnDrawOnPaint 不 12 2. 了 View 類 滑 理 滑 View 類 afx_msg void OnLButtonDown(UINT nflags, CPoint point); afx_msg void OnLButtonUp(UINT nflags, CPoint point); afx_msg void OnMouseMove(UINT nflags, CPoint point); 兩 Scribble step0 不 void CScribbleView::OnDraw(CDC* pdc) CScribbleDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here Hello CFrameWnd 類 例 MDI CMDIFrameWnd 類 MDI 兩 new CMDIFrameWnd LoadFrame WM_CREATE CMainFrame::OnCreate 行 來 裡 行 列 狀 列 立 LoadFrame 參數 例 IDR_MAINFRAME 來 LoadFrame Create 不 列 狀 列 Toolbar & Status bar 列 狀 列 CToolBar CStatusBar 兩 隸 CMainFrame 兩 數 兩 class CMainFrame : public CMDIFrameWnd protected: // control bar embedded members CStatusBar m_wndstatusbar; CToolBar m_wndtoolbar; ; 立 WM_CREATE 利 列 狀 列 立 來 了 WM_CREATE Message Map BEGIN_MESSAGE_MAP(CMyMDIFrameWnd, CMDIFrameWnd) ON_WM_CREATE() END_MESSAGE_MAP() ON_WM_CREATE WM_CREATE OnCreate AppWizard OnCreate Message Map 列 狀 列 m_wndtoolbar.create(this) 隸 this 列 m_wndtoolbar.loadtoolbar(idr_mainframe) RC 列 IDR_MAINFRAME RC 兩 列 LoadToolBar BITMAP TOOLBAR 來 列 m_wndstatusbar.create(this) 隸 this 狀 列 m_wndstatusbar.setindicators(,) 參數 列 參數 列 數 Indicator 狀 列 來 數 On/Off 狀 AFXRES.H indicators CCmdTarget 類 Message Map 理 類 DECLARE_MESSAGE_MAP.CPP BEGIN_MESSAGE_MAP END_MESSAGE_MAP 兩 錄 7-6 Scribble 類 Message Map 例 CScribbleApp 類 WM_COMMAND BEGIN_MESSAGE_MAP(CScribbleApp, CWinApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() 了 ID_APP_ABOUT OnAppAbout 理 CWinApp 理 什 5

File / Edit / View / Window / Help 令 理 理 欄 聯 Yes 令 令 理 不 類 Message Map 令 No Framework 了不 Open Save As Print Print Setup Find Replace Edit CEditView File 錄 LRU 數 Appwizard 更 便 View 列 狀 列 見 Window 列 力 列 理 Cascade Tile 欄 No 令 理 Message Map AppWizard 了 了 BEGIN_MESSAGE_MAP(CScribbleApp, CWinApp) ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() BEGIN_MESSAGE_MAP(CScribbleView, CView) ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() Scribble 了 About 了 WM_COMMAND ID_APP_ABOUT Message Map BEGIN_MESSAGE_MAP(CScribbleApp, CWinApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() 來 OnAppAbout 理 void CScribbleApp::OnAppAbout() CAboutDlg aboutdlg; aboutdlg.domodal(); CAboutDlg CDialog 類 class CAboutDlg : public CDialog enum IDD = IDD_ABOUTBOX ; // IDD_ABOUTBOX RC DECLARE_MESSAGE_MAP() ; C CDialog 類 類 RC DoModal 10 論 料 DDX 料 DDV 6

CEditView AppWizard 六 CScribbleView 類 CView CEditView 了 CEditView 力 類 Windows Edit SerializeRaw Edit raw text 料 AppWizard 六 了 CView CEditView 兩 7