Bài giảng Lập trình Windows: Chương 7 - Kiến trúc Document / View
Số trang: 13
Loại file: pdf
Dung lượng: 219.36 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Nội dung của chương 7 Kiến trúc Document/View nằm trong bài giảng Lập trình Windows nhằm giới thiệu document/view, một ứng dụng theo kiến trúc document/view. Các đặc điểm của kiến trúc tài liệu/quan sát, tính độc lập dữ liệu, tài liệu của chương trình.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình Windows: Chương 7 - Kiến trúc Document / ViewChương 7 Kiến trúc Document/View 17.1. Giới thiệu document/view Một ứng dụng theo kiến trúc document/view Lớp ứng dụng - CT Lớp cửa sổ - CS Lớp quan sát - CV Lớp tài liệu - CD 27.1. Giới thiệu document/view... Các đặc điểm của kiến trúc tài liệu/quan sát - Tính độc lập dữ liệu, tài liệu của chương trình. - Tính độc lập của khung nhìn đối với cửa sổ chương trình. - Tính gắn kết giữa tài liệu và khung nhìn. - Một khung nhìn một thời điểm chỉ làm việc được với một tài liệu, ngược lại một tài liệu có thể đồng thời được xử lý bởi nhiều khung nhìn. - Cho phép quản lý lưu trữ tài liệu chương trình một cách “trong suốt” thông qua kỹ thuật Serialize gắn kết với tài liệu. Khái niệm về tạo lập động (dynamic create): là cơ chế cho phép tạo các đối tượng từ các lớp không bằng câu lệnh lập trình. Phải sử dụng các macro sau để khai báo và định nghĩa cho các lớp tương ứng: DECLARE_DYNCREATE( class_name ), IMPLEMENT_DYNCREATE( class_name , base_name ), RUNTIME_CLASS( class_name ). 37.1. Giới thiệu document/view... Có hai kiểu kiến trúc này: SDI (đơn tài liệu) và MDI (đa tài liệu) - Đơn tài liệu là chương trình chỉ xử lý một tài liệu tại một thời điểm. - Đa tài liệu cho phép xử lý nhiều tài liệu (trên nhiều khung nhìn) đồng thời. Minh họa SDI và MDI như sau: 47.2. Ứng dụng kiểu SDI Bước 1: Dẫn xuất để xây dựng lớp cung cấp cho chương trình: Lớp ứng dụng CT từ lớp CWinApp. Lớp khung cửa sổ CS từ lớp CFrameWnd. Lớp tài liệu CD từ lớp CDocument. Lớp CV từ lớp CView. Bước 2: Cho phép tạo lập động các lớp CS, CD và CV bằng cách sử dụng các cặp macro DECLARE_DYNCREATE và IMPLEMENT_DYNCREATE. Bước 3: Tạo một mẫu (template) để liên kết các lớp CS, CD và CV với nhau qua đối tượng lớp CSingleDocTemplate. Bước 4: Phân tích cú pháp và xử lý dòng lệnh bằng hàm ParseCommandLineInfo(). Bước 5: Nạp chồng một số hàm thành viên để thực hiện như: - Hàm lưu trữ và đọc tài liệu CObject :: Serialize() - Hàm vẽ tài liệu lên khung nhìn CView :: OnDraw(),... 57.2. Ứng dụng kiểu SDI... #include class CD : public CDocument Lớp tài liệu - CD { DECLARE_DYNCREATE( CD ) ................................................. }; IMPLEMENT_DYNCREATE( CD, CDocument ) class CV : public CView Lớp quan sát - CV { DECLARE_DYNCREATE( CV ) ................................................. }; IMPLEMENT_DYNCREATE( CV, CView ) class CS : public CFrameWnd Lớp cửa sổ - CS { DECLARE_DYNCREATE( CS ) ................................................. }; IMPLEMENT_DYNCREATE( CS, CFrameWnd ) class CT : public CWinApp { public: BOOL InitInstance() Lớp chương trình - CT { ///-- Khởi động ứng dụng --/// } }; CT a; 6 Đối tượng chương trình7.2. Ứng dụng kiểu SDI... Các bước khởi tạo ứng dụng trong hàm InitInstance() của lớp CT, Bước 1) Tạo đối tượng liên kết các thành phần chương trình: CSingleDocTemplate *p = new CSingleDocTemplate( ID_số_hiệu , RUNTIME_CLASS( CD ), RUNTIME_CLASS( CS ), RUNTIME_CLASS( CV ) ); AddDocTemplate( p ); Bước 2) Xử lý dòng lệnh CCommandLineInfo CLInfo; ParseCommandLine(CLInfo); ProcessShellCommand(CLInfo); Trong đó ID_số_hiệu là số hiệu của một String table và Menu trong tài nguyên, quy định các tham số mẫu tài liệu cho ứng dụng. Thực đơn phải có tối thiếu 2 mục chọn ngang và cấu trúc xâu như sau: ID_số_hiệu “ tên_chương_trình tên_tài_liệu tên_kiểu_tài_liệu tên_kiểu_file_tài_liêu (*.???) .??? kiểu_tài_liệu tên_tài_liệu ” 77.2. Ứng dụng kiểu SDI... Các hàm API đăng ký tài liệu EnableShellOpen(); RegisterShellFileTypes(); Hàm OnDraw() của lớp CV để hiển thị tài liệu void OnDraw(CDC *pDC) { // hiển thị tài liệu, // sử dụng hàm GetDocument() ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình Windows: Chương 7 - Kiến trúc Document / ViewChương 7 Kiến trúc Document/View 17.1. Giới thiệu document/view Một ứng dụng theo kiến trúc document/view Lớp ứng dụng - CT Lớp cửa sổ - CS Lớp quan sát - CV Lớp tài liệu - CD 27.1. Giới thiệu document/view... Các đặc điểm của kiến trúc tài liệu/quan sát - Tính độc lập dữ liệu, tài liệu của chương trình. - Tính độc lập của khung nhìn đối với cửa sổ chương trình. - Tính gắn kết giữa tài liệu và khung nhìn. - Một khung nhìn một thời điểm chỉ làm việc được với một tài liệu, ngược lại một tài liệu có thể đồng thời được xử lý bởi nhiều khung nhìn. - Cho phép quản lý lưu trữ tài liệu chương trình một cách “trong suốt” thông qua kỹ thuật Serialize gắn kết với tài liệu. Khái niệm về tạo lập động (dynamic create): là cơ chế cho phép tạo các đối tượng từ các lớp không bằng câu lệnh lập trình. Phải sử dụng các macro sau để khai báo và định nghĩa cho các lớp tương ứng: DECLARE_DYNCREATE( class_name ), IMPLEMENT_DYNCREATE( class_name , base_name ), RUNTIME_CLASS( class_name ). 37.1. Giới thiệu document/view... Có hai kiểu kiến trúc này: SDI (đơn tài liệu) và MDI (đa tài liệu) - Đơn tài liệu là chương trình chỉ xử lý một tài liệu tại một thời điểm. - Đa tài liệu cho phép xử lý nhiều tài liệu (trên nhiều khung nhìn) đồng thời. Minh họa SDI và MDI như sau: 47.2. Ứng dụng kiểu SDI Bước 1: Dẫn xuất để xây dựng lớp cung cấp cho chương trình: Lớp ứng dụng CT từ lớp CWinApp. Lớp khung cửa sổ CS từ lớp CFrameWnd. Lớp tài liệu CD từ lớp CDocument. Lớp CV từ lớp CView. Bước 2: Cho phép tạo lập động các lớp CS, CD và CV bằng cách sử dụng các cặp macro DECLARE_DYNCREATE và IMPLEMENT_DYNCREATE. Bước 3: Tạo một mẫu (template) để liên kết các lớp CS, CD và CV với nhau qua đối tượng lớp CSingleDocTemplate. Bước 4: Phân tích cú pháp và xử lý dòng lệnh bằng hàm ParseCommandLineInfo(). Bước 5: Nạp chồng một số hàm thành viên để thực hiện như: - Hàm lưu trữ và đọc tài liệu CObject :: Serialize() - Hàm vẽ tài liệu lên khung nhìn CView :: OnDraw(),... 57.2. Ứng dụng kiểu SDI... #include class CD : public CDocument Lớp tài liệu - CD { DECLARE_DYNCREATE( CD ) ................................................. }; IMPLEMENT_DYNCREATE( CD, CDocument ) class CV : public CView Lớp quan sát - CV { DECLARE_DYNCREATE( CV ) ................................................. }; IMPLEMENT_DYNCREATE( CV, CView ) class CS : public CFrameWnd Lớp cửa sổ - CS { DECLARE_DYNCREATE( CS ) ................................................. }; IMPLEMENT_DYNCREATE( CS, CFrameWnd ) class CT : public CWinApp { public: BOOL InitInstance() Lớp chương trình - CT { ///-- Khởi động ứng dụng --/// } }; CT a; 6 Đối tượng chương trình7.2. Ứng dụng kiểu SDI... Các bước khởi tạo ứng dụng trong hàm InitInstance() của lớp CT, Bước 1) Tạo đối tượng liên kết các thành phần chương trình: CSingleDocTemplate *p = new CSingleDocTemplate( ID_số_hiệu , RUNTIME_CLASS( CD ), RUNTIME_CLASS( CS ), RUNTIME_CLASS( CV ) ); AddDocTemplate( p ); Bước 2) Xử lý dòng lệnh CCommandLineInfo CLInfo; ParseCommandLine(CLInfo); ProcessShellCommand(CLInfo); Trong đó ID_số_hiệu là số hiệu của một String table và Menu trong tài nguyên, quy định các tham số mẫu tài liệu cho ứng dụng. Thực đơn phải có tối thiếu 2 mục chọn ngang và cấu trúc xâu như sau: ID_số_hiệu “ tên_chương_trình tên_tài_liệu tên_kiểu_tài_liệu tên_kiểu_file_tài_liêu (*.???) .??? kiểu_tài_liệu tên_tài_liệu ” 77.2. Ứng dụng kiểu SDI... Các hàm API đăng ký tài liệu EnableShellOpen(); RegisterShellFileTypes(); Hàm OnDraw() của lớp CV để hiển thị tài liệu void OnDraw(CDC *pDC) { // hiển thị tài liệu, // sử dụng hàm GetDocument() ...
Tìm kiếm theo từ khóa liên quan:
Tính độc lập dữ liệu Kiến trúc Document Kiến trúc View Lập trình Windows Kỹ thuật lập trình Windows Phương pháp lập trình Windows Ngôn ngữ lập trình WindowsGợi ý tài liệu liên quan:
-
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 157 0 0 -
bảo mật mạng các phương thức giả mạo địa chỉ IP fake IP
13 trang 154 0 0 -
information technology outsourcing transactions process strategies and contracts 2nd ed phần 3
65 trang 104 0 0 -
Excel add in development in c and c phần 9
0 trang 101 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 91 0 0 -
Hướng dẫn lập trình OpenGL căn bản
33 trang 50 0 0 -
The CISA Prep Guide Mastering the Certified Information Systems Auditor Exam phần 1
60 trang 43 0 0 -
thủ thuật windows XP hay nhất phần 2
14 trang 39 0 0 -
Bài giảng Lập trình Windows nâng cao: ADO.NET - Bùi Công Danh
57 trang 37 0 0 -
Báo cáo nghiên cứu khoa học: Nghiên cứu phần mềm bãi giữ xe thông minh
37 trang 31 0 0