giáo trình môn học lập trình windows - nguyễn trí tuấn - Pdf 10

Nguyen Tri Tuan – Khoa CNTT – DHHKTN – TP.HCM (Updated 02/2004) 1 / 3
ĐỀ CƯƠNG MÔN HỌC: LẬP TRÌNH WINDOWS
(WINDOWS PROGRAMMING)
Mã môn học: ………
45 tiết lý thuyết, 30 tiết thực hành
oOo

I. Tóm tắt mục tiêu của môn học:
- Cung cấp cho sinh viên kiến thức và phương pháp lập trình trên môi
trường Windows: cơ chế quản lý chương trình, lập trình giao diện đồ họa
(GUI), cơ chế quản lý bộ nhớ, lập trình đồng hành, kỹ thuật in ấn…, từ đó
sinh viên có khả năng tự xây dựng 1 ứng dụng hoàn chỉnh ở mức độ vừa
phải bằng ngôn ngữ Visual C++, trên nền thư viện MFC.
- Tạo cho sinh viên một nền tảng trong việc tiếp thu và khai thác các ngôn
ngữ lập trình cấp cao khác trên Windows như: Visual Basic, Delphi, C++
Builder, Access, …
- Tạo cho sinh viên một kiến thức cơ bản để có thể tự nghiên cứu các kỹ
thuật lập trình sâu hơn trên môi trường Windows.

II. Các môn học trước:
Tin học đại cương A1, Tin học đại cương A2, Lập trình hướng đối tượng,
Cấu trúc dữ liệu.

III. Đối tượng áp dụng:
- Sinh viên hệ Cao đẳng
- Sinh viên hệ chính qui chuyên ngành CNTT, giai đoạn 2
- Sinh viên hệ Hoàn chỉnh đại học chuyên ngành CNTT

IV. Nội dung môn học:
Chương 0: Các khái niệm cơ bản
1. Giới thiệu các thư viện lập trình của HĐH Windows

2. Phân trang bộ nhớ (Paging Memory)
3. Không gian địa chỉ ảo (Virtual Address Space)
4. Các hàm xử lý trên bộ nhớ ảo (Virtual Memory Functions)
5. Về các hàm xử lý bộ nhớ chuẩn của C/C++

Chương 4: Thư viện đồ họa GDI (Graphics Device Interface)
1. Giới thiệu
2. Một chương trình minh họa các hàm GDI cơ bản
3. Bitmap
4. In ấn (Printing)

Chương 5: Xử lý Clipboard
1. Giới thiệu
2. Các kiểu định dạng dữ liệu (data format) dùng trong Clipboard
3. Các kỹ thuật thao tác trên Clipboard
4. Xây dựng 1 Clipboard Viewer

Chương 6: Multi-Media
1. Tổng quan về các hàm thư viện
2. Thư viện MCI (Media Control Interface)
3. Một chương trình minh họa điều khiển CD-audio và play file WAV

Chương 7: Multi-thread programming
1. Khái niệm Multi-tasking và Multi-threading
2. Tiến trình (Process), tiểu trình (Thread)
3. Chương trình Multi-thread đơn giản
4. Quản lý các tiểu trình
- Tạo lập tiểu trình
- Kết thúc tiểu trình
- Tạm dừng tiểu trình (Thread suspension)

mode), sử dụng thư viện MFC.
- Khuyến khích thiết kế chương trình theo hướng đối tượng
- Thời gian tự làm bài thêm: 90 tiết

- Người biên soạn: Th.S. NGUYỄN TRI TUẤN

- Người duyệt: …………………………………

Nguyen Tri Tuan – Khoa CNTT – DH KHTN Tp.HCM 1/1
CÁC QUI ĐỊNH - Môn học: Lập trình C trên Windows
oOo

1. Cách tính điểm:
- Môn học chỉ thi trên máy vào cuối khóa, không thi viết trên giấy
- Điểm thi cuối khoá: 50%
- Điểm bài project giữa khóa: 50% (từ 1-4 bài project).
- Có thể có các đồ án môn học cộng điểm (không quá 30% tổng số điểm)

- Được phép sử dụng tất cả tài liệu và đĩa mềm khi thi
- Tất cả các bài làm giống nhau sẽ bị điểm 0

2. Làm bài thực hành:
- Phải có kiến thức tốt về lập trình hướng đối tượng
- Phải có kiến thức tốt về sử dụng hệ điều hành Windows và các ứng dụng khác
- Phải chuẩn bị bài thực hành trước khi vào giờ thực hành
- Công cụ lập trình: Visual C++ 6, sử dụng MFC
- Chương trình viết phải ngăn nắp, thẳng hàng, ghi chú đầy đủ. Đặt tên biến
và tên hàm phải gợi nhớ, có qui ước xác định (VD. Tên biến chữ thường,
tên hàm chữ hoa …)


Phần 1: Mở đầu
- Nêu mục tiêu và nội dung của đồ án/project.
Phần 2: Mục lục
Phần 3: Các cơ sở lý thuyết
- Trình bày các cơ sở lý thuyết liên quan đến các nội dung mà đồ án sẽ giải
quyết.
- Phân tích các hướng tiếp cận khác nhau (nếu có)
- Chọn ra phương pháp được sử dụng trong đồ án
Phần 4: Phân tích và thiết kế chương trình
- Các thuật toán quan trọng
- Trình bày trên phương diện lý thuyết các thuật toán then chốt trong chương
trình. Minh họa bằng lưu đồ. Đánh giá, phân tích.
- Thiết kế chi tiết của chương trình: các CTDL, các hàm quan trọng, các giải
thuật, các bước thực hiện cài đặt
- Các cấu trúc dữ liệu cần thiết. Nêu mô tả, ý nghĩa từng cấu trúc, các field, lý
do chọn lựa CTDL.
- Các hàm quan trọng: nêu prototype, ý nghĩa các tham số, kết quả trả về, nội
dung của hàm
Phần 5: Hướng dẫn & Trợ giúp
- Hướng dẫn sử dụng và cài đặt chương trình
- Môi trường hoạt động của chương trình: OS, các phần mềm tiện ích, thư viện
cần có khác
Phần 6: Đánh giá
Nguyen Tri Tuan – Khoa CNTT – DH KHTN Tp.HCM 2/2
- Ưu khuyết điểm của chương trình, đồ án.
- Đánh giá kết quả thực hiện: phần nào đã hoàn thành, phần nào chưa ?
- Hướng mở rộng của chương trình ?
Phần 7: Tài liệu tham khảo
- Liệt kê cụ thể các tài liệu tham khảo, tên tác giả, tựa, năm xuất bản, trang nào ?
- Liệt kê cụ thể địa chỉ Web-site

oOo

Chương 0:

1. Làm quen với 1 chương trình C viết trên thư viện API
a. Phần 1:

- Sử dụng VC++ 6, dùng chức năng New project, chọn loại project “Win32 Application”
- Chọn chức năng “A typical Hello World !” application
- Hoàn tất tạo project, biên dịch và chạy thử nghiệm chương trình
b. Phần 2:

- Thay đổi tiêu đề của của sổ thành “Chuong trinh C/API”
- Thay đổi nội dung hiển thị trên màn hình client area thành:
“Day la chuong trinh dau tien…
… viet bang VC++…
… tren HDH Windows…
… bang thu vien API. “

2. Tài nguyên của chương trình: lấy chương trình kết quả của bài tập 1, thực hiện tiếp:
a. Phần 1:

- Thay đổi biểu tượng của chương trình
- Thay đổi con trỏ chuột
- Thay đổi nội dung của hộp thoại “About”
b. Phần 2:

- Bổ sung thêm vào menu “File” các mục sau: New, Open, Save
- Thêm mới 1 menu popup “Edit” với các item sau: Undo, Cut, Copy, Paste, Select all
- Mỗi menu item đều có phím tắt tương ứng

5. Một chương trình soạn thảo văn bản đơn giản
- Tạo ứng dụng MFC ở chế độ “Single document”
© Nguyen Tri Tuan – Khoa CNTT ĐH.KHTN. TP.HCM 2/7
- Khi user chọn chức năng “New” Æ tạo 1 cửa sổ soạn thảo EDIT trong vùng client
của cửa sổ giao diện chính
- Xử lý WM_SIZE để kích thước của cửa sổ soạn thảo EDIT luôn trùng khớp với
kích thước vùng client của cửa sổ giao diện chính
- Thực hiện các chức năng: Open, Save, Save as, Undo, Cut, Copy, Paste

6. Một chương trình quản lý đơn giản
- Tạo ứng dụng MFC ở chế độ “Dialog based”
- Màn hình giao diện gợi ý như hình vẽ
- Chương trình cho phép nhập và lưu thông tin lý lịch của các nhân viên. Dữ liệu
được lưu vào file nhị phân dạng record.
- Người dùng nhập thông tin chi tiết cho 1 nhân viên rồi nhấn “Lưu” để lưu record
vào file. Sau khi lưu xong, xóa các ô nhập liệu để thực hiện cho nhân viên tiếp
theo.
- Mục “Trình độ” có các lựa chọn sau: tiểu học, trung học, trung cấp, đại học, sau
đại học
- Nút “Chọn hình” mở hộp thoại cho phép chọn 1 file hình ảnh (BMP). Tên file
được thể hiện trên ô “Tên file hình”, ảnh được hiển thị trên ô trống

7. Phát triển từ bài tập 6
- Tạo ứng dụng MFC ở chế độ “Dialog based”
- Màn hình giao diện gồm 2 phần:
o Bên trái là 1 danh sách các Mã NV (đọc từ file record)
o Bên phải có giao diện giống bài tập 6

• Delete: chức năng xóa bỏ 1 công việc trong danh sách.
• Close: đóng dialog

- Khi user chọn chức năng “Add”, chương trình mở dialog cho phép định nghĩa mới 1
công việc trong ngày như sau:

• Ngày: là ngày/tháng/năm đã chọn
• Giờ: user chọn giờ để thực hiện công việc
• Shutdown: tự động shutdown máy khi đến giờ qui định
© Nguyen Tri Tuan – Khoa CNTT ĐH.KHTN. TP.HCM 4/7
• Nhắc nhở: hiển thị 1 message-box với câu thông báo lên màn hình khi đến
giờ qui định, đồng thời phát 1 tiếng sound.
• OK: xác nhận công việc đã nhập
• Cancel: hủy bỏ công việc đang nhập
- Sau khi user đã định nghĩa các công việc, chương trình sẽ tự động kiểm tra và nhắc
nhở. Chu kỳ kiểm tra là 1 phút.
- Lưu trữ:
• Lưu lại tất cả công việc trong 1 tập tin, tên file do user chỉ định
• Tên file được lưu vào file WIN.INI trong section [DateBook]
• Khi user mở dialog “Quản lý công việc trong ngày”, chương trình tự động
đọc file và load tất cả các công việc của ngày đã chọn vào danh sách.
- Xây dựng các chức năng chính dưới dạng DLL, bao gồm:
• Quản lý công việc trong ngày
• Tạo mới 1 công việc trong ngày
• Shutdown hệ thống
• Hiển thị nhắc nhở
- Nộp chương trình và sưu liệu thiết kế DLL. Sưu liệu mô tả chi tiết prototype của các
hàm trong thư viện DLL, các cấu trúc dữ liệu quan trọng của chương trình.

Chương 4 & 5:

o Toolbar: Xem/ẩn thanh ToolBar
o Statusbar: Xem/ẩn thanh StatusBar
- Help:
o About: giới thiệu về chương trình
b. Các yêu cầu khác:

- Tất cả các chức năng đều thể hiện trên ToolBar
- Mỗi chức năng đều có ToolTip Text và có hướng dẫn trên StatusBar
- Tất cả chức năng liên quan đến Clipboard (Cut/Copy/Paste) được tổ chức thành 1
DLL riêng

11. Xây dựng chương trình “Object Drawing”. Chương trình cho phép user dùng mouse để
vẽ các đối tượng hình, copy, cắt dán các đối tượng.
Mô tả chi tiết:

Giao diện gợi ý như hình vẽ (SDI - Single Document Interface).
a. Các chức năng của chương trình bao gồm:

- File:
o New: xóa màn hình, bắt đầu vẽ mới.
o Exit: thoát chương trình
- Edit:
o Cut: cắt đối tượng đang được chọn, đưa vào Clipboard (dạng object)
o Copy: copy đối tượng đang được chọn, đưa vào Clipboard (dạng object)
o Paste: dán đối tượng trong Clipboard ra màn hình, tại tọa độ (0, 0)
- Drawing:
© Nguyen Tri Tuan – Khoa CNTT ĐH.KHTN. TP.HCM 6/7


Chương 6:

12. Xây dựng chương trình “Trò chơi lật hình”. Chương trình có 1 số cặp hình giống nhau
(bị dấu). Người dùng click mouse để lật từng hình, nếu lật được 2 hình giống nhau liên
tiếp thì ghi được 1 điểm; nếu không hình sẽ trở lại trạng thái bị dấu.
Mô tả chi tiết:

- Giao diện gợi ý như hình vẽ. Thư viện các hình sử dụng có thể lấy các file ICO và
import vào chương trình sẵn.
- Màn hình bên trái dạng ListView thể hiện các hình.
- Option “Số hình”: cho phép user chọn số cặp hình muốn chơi. Không quá MAX = 10
cặp hình
- Option “Play nhạc”: cho phép play 1 file nhạc (WAV) trong lúc chơi. Nhạc bắt đầu
play khi user nhấn “New game” để bắt đầu 1 game mới.
- Option “Play 1 lần”: play xong file nhạc 1 lần rồi dừng
- Option “Play liên tục”: play liên tiếp bài nhạc cho đến khi hết game hay thoát
© Nguyen Tri Tuan – Khoa CNTT ĐH.KHTN. TP.HCM 7/7

- Option “Chọn file WAV”: cho phép user chọn file WAV để play. Tên file đã chọn thể
hiện trên mục “Tên file”
- “Kết quả” thể hiện số điểm đạt được và thời gian đã trôi qua (từ lúc bắt đầu game)
- Nút “New game” để bắt đầu 1 game mới
- Nút “Kết thúc”: thoát chương trình.
Yêu cầu:

- Khi kết thúc chương trình, tất cả các thông số đều được ghi lại vào file TCLH.INI.
File này lưu cùng thư mục với chương trình. Những thông số cần lưu gồm:
o Số hình
o Có play nhạc hay không

Ngày soạn: 26-2-2005
Email: Viết chương trình từ hàm WinMain:
Đọc tập tin input.txt các thông tin:
• Dòng đầu là số n

Dòng kế tiếp có n số nguyên, mỗi số cách một khoảng trắng
Yêu cầu:
a) Tính tổng của dãy số trên và thông báo bằng MessageBox
b) Tìm phần tử lớn nhất của dãy và thông báo bằng MessageBox
c) Sắp xếp tăng dần dãy số trên rồi xuất ra tập tin output.txt như sau:

Dòng đầu là số n
• Dòng kế tiếp có n số nguyên, mỗi số cách một khoảng trắng
Sau khi ghi xong thi thông báo
“Da sap xep du lieu va ghi vao tap tin output.txt”.
d) Đếm số số nguyên tố trong dãy và thông báo kết quả bằng MessageBox
(Số nguyên tố là số nguyên lớn hơn 1 và chỉ chia hết cho 1 và chính nó)
Một số hướng dẫn:

Tạo project: File à New à (Projects) Win32 Application (Nhập tên project)
à A simple Win32 Application
• Cú pháp lệnh MessageBox:
int MessageBox(
HWND
hWnd
,
LPCTSTR lpText, //chuỗi ký tự

Các khái niệm cơ bản
Nguyễn Tri Tuấn
Khoa CNTT – ĐH.KHTN.Tp.HCM
Email: nttuan@ fit.hcmuns.edu.vn
Spring 2004C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 2
Nội dung
 Vài điểm khác biệt giữa lập trình Windows
và DOS
 Các thư viện lập trình của Windows
 Các loại ứng dụng
 Các khái niệm cơ bản
 Lập trình sự kiện (Even driven programming)
 Các thành phần giao diện đồ họa (GUI)
 Tài nguyên của ứng dụng (Resources)
 Một chương trình tổng quát xây dựng trên
Win32 API
 Các kiểu dữ liệu cơ bản
2
Spring 2004C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 3
Vài điểm khác biệt giữa lập trình Windows và DOS
Không cóHỗ trợ nhiều công nghệ
DLL, OLE, DDE, COM,
OpenGL, DirectX, …
Ứng dụng 16 bitsHỗ trợ 32 bits hay hơn nữa
Phải dùng các thư viện
Multimedia riêng
Tích hợp sẵn Multimedia
Single CPUMulti- CPU
Single taskMulti- tasking
Thực hiện tuần tự theo chỉ

Spring 2004C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 6
Các thư viện lập trình của Windows …(tt)
 OWL - Object Windows Library
 Là bộ thư viện hướng đối tượng của
BorlandC++
 MFC - Microsoft Foundation Classes
 Là bộ thư viện hướng đối tượng của Visual C++
 Một ứng dụng trên Windows có thể được
viết bằng
 Thư viện SDK
 Một thư viện khác (OWL, MFC,…) phối hợp với
SDK
4
Spring 2004C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 7
Các loại ứng dụng
 Win32 Console: ứng dụng 32 bits, với giao diện
dạng DOS command line
 Win32 (SDK): ứng dụng 32 bits, chỉ sử dụng thư
viện SDK
 Win32 DLL: ứng dụng 32 bits, dạng thư viện liên
kết động (Dynamic-linked library), sử dụng SDK
 Win32 LIB: ứng dụng 32 bits, dạng thư viện liên
kết tĩnh (Static-linked library)
 MFC EXE: ứng dụng 32 bits, sử dụng thư viện
Microsoft Foundation Class
 MFC DLL: ứng dụng 32 bits, dạng thư viện liên kết
động (Dynamic-linked library), sử dụng MFC
 …
Spring 2004C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 8
Các khái niệm cơ bản

TranslateMessage(&msg);
// chuyển message đến hàm xử lý thông điệp của cửa
// sổ tương ứng
DispatchMessage(&msg);
}
return msg.wParam;
Spring 2004C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 12
Các thành phần giao diện đồ họa (GUI)
 Các dạng GUI cơ bản
 Cửa sổ
 Định nghĩa
 Nguyên tắc quản lý
 Phân loại
 Lớp cửa sổ (window class)
 Hàm xử lý thông điệp (window procedure)
 Các thuộc tính
7
Spring 2004C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 13
Các thành phần giao diện đồ họa (GUI)…(tt)
 GUI: Graphics User Interface
 Các dạng GUI cơ bản:
 SDI - Single Document Interface
 Một cửa sổ làm việc
 Cho phép thay đổi kích thước cửa sổ (Resizeable)
 Không có các cửa sổ con
 Ví dụ: NotePad, Paint,…
 MDI - Multiple Document Interface
 Một cửa sổ làm việc chính (Frame window) và nhiều cửa sổ con (Child
window)
 Cho phép thay đổi kích thước cửa sổ (Resizeable)

 Cửa sổ tiêu chuẩn
 Cửa sổ hộp thoại (Dialog box)
 Các control
9
Spring 2004C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 17
GUI – Window …(tt)
App
Window
Dialog
box
Desktop
Window
Control
Child
window
Parent
window
Spring 2004C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 18
GUI – Window …(tt)
Title-
bar
Minimized,
Restored,
Maximized
buttons
Scroll-
bar
Menu-
bar
Resized

Các dạng control


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status