1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài giảng Lập trình Windows: Chương 1 - Một số khái niệm cơ bản

56 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài giảng Lập trình Windows: Chương 1 - Một số khái niệm cơ bản
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Lập trình Windows
Thể loại Bài giảng
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 56
Dung lượng 1,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

MỘT SỐ KHÁI NIỆM CƠ BẢN• Một số khái niệm cơ bản • Lập trình sự kiện – thông điệp • Mô hình lập trình windows • Một số khái niệm cơ bản • Lập trình sự kiện – thông điệp • Mô hình lập trì

Trang 1

LẬP TRÌNH WINDOWS

Giới thiệu tổng quan về học phần lập trình Windows

Trang 2

– Cơ chế quản lý bộ nhớ, tập tin.

– Môn học này trình bày phương pháp lập trình API trên Windows 32 và kỹ thuật lập trình MFC với ngôn ngữ

minh họa là Visual C++ 6.0

Trang 3

Đề cương môn học (5đvht = 75t)

• Chương 1: Khái niệm về lập trình Windows

• Chương 2: Kỹ thuật lập trình Visual C++ (MFC)

• Chương 3: Quản lý bộ nhớ

• Chương 4: Thư viện đồ họa GDI

• Chương 5: Thư viện liên kết động

• Chương 6: Lập trình CSDL ADO – SQL Server

• Chương 7: Lập trình đa tiểu trình

Trang 6

Nộp bài tập project

• Bài tập project 1

– Nộp vào giữa kỳ– SV nộp cho lớp trưởng

• Bài tập project 2

– Nộp vào cuối học kỳ, trước khi thi thực hành 1 tuần– SV nộp cho lớp trưởng

Trang 7

Bài tập miễn thi

– Là một dạng bài tập project nâng cao, liên quan đến một chủ đề do GV đề xuất, sinh viên tự thực hiện

– Sinh viên làm bài tập miễn thi sẽ không phải làm 2 bài tập project bắt buộc trên

– Trong trường hợp sinh viên không được miễn thi, điểm bài tập miễn thi sẽ được tính là điểm bài tập project (tối đa 3đ)

Trang 8

Bài tập miễn thi

• Nội dung

– Báo cáo viết mô tả ứng dụng theo mẫu qui định

– CD chương trình được tổ chức theo mẫu qui định

Trang 9

MỘT SỐ KHÁI NIỆM CƠ BẢN

• Một số khái niệm cơ bản

• Lập trình sự kiện – thông điệp

• Mô hình lập trình windows

• Một số khái niệm cơ bản

• Lập trình sự kiện – thông điệp

• Mô hình lập trình windows

Trang 10

Nội dung

• Một số điểm khác biệt giữa lập trình Windows & DOS

• Một số 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

• Mô hình lập trình Windows

• Tài nguyên của ứng dụng (Resource)

• Thư viện lập trình Windows

• Một chương trình tổng quát xây dựng trên Win API

Trang 11

Nội dung

• Một số điểm khác biệt giữa lập trình Windows & DOS

• Một số 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

• Mô hình lập trình Windows

• Tài nguyên của ứng dụng (Resource)

• Thư viện lập trình Windows

• Một chương trình tổng quát xây dựng trên Win API

Trang 12

Lập trình Windows & DOS

Thực hiện tuần tự Lập trình sự kiện dựa vào

thông điệp (message)

Phải dùng các thư viện

Trang 13

Lập trình Windows & DOS

Trang 14

Chương trình minh họa trong môi trường Windows

Trang 15

Nội dung

• Một số điểm khác biệt giữa lập trình Windows & DOS

• Một số 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

• Mô hình lập trình Windows

• Tài nguyên của ứng dụng (Resource)

• Thư viện lập trình Windows

• Một chương trình tổng quát xây dựng trên Win API

Trang 16

Các loại ứng dụng

Win32 Console ứng dụng 32 bits, với giao diện dạng DOS

command lineWin32 DLL ứng dụng 32 bits, dạng thư viện liên kết

động (Dynamic-linked library)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 ClassMFC DLL ứng dụng 32 bits, dạng thư viện liên kết

động (Dynamic-linked library), sử dụng MFC

Trang 17

Các khái niệm cơ bản

Handle Một giá trị 32bits không dấu (unsigned) do HĐH tạo ra

để làm định danh cho 1 đối tượng (file, cửa sổ, vùng nhớ, menu, toolbar…)

ID

(Identifier) Một giá trị nguyên do ứng dụng tạo ra để làm định danh cho 1 đối tượng(menu item,tool button,control,…)

Instance Một giá trị nguyên do HĐH tạo ra để định danh cho 1

thể hiện đang thực thi của ứng dụng

Callback Thuộc tính của một hàm/thủ tục sẽ được gọi bởi HĐH,

không phải bởi ứng dụng

Library Thư viện thủ tục/hàm, lớp đối tượng được xây dựng sẵn

bởi windows và các hãng khác

Trang 18

Nội dung

• Một số điểm khác biệt giữa lập trình Windows & DOS

• Một số 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

• Mô hình lập trình Windows

• Tài nguyên của ứng dụng (Resource)

• Thư viện lập trình Windows

• Một chương trình tổng quát xây dựng trên Win API

Trang 19

Lập trình sự kiện

Trang 20

Sự kiện và xử lý thông điệp

Trang 21

// Vòng lặp xử lý thông điệp trong 1 ứng dụng

// Message loop

MSG msg;

// lấy thông điệp ra khỏi hàng đợi của ứng dụng

while (GetMessage(&msg, NULL, 0, 0))

Trang 22

Nội dung

• Một số điểm khác biệt giữa lập trình Windows & DOS

• Một số 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

• Mô hình lập trình Windows

• Tài nguyên của ứng dụng (Resource)

• Thư viện lập trình Windows

• Một chương trình tổng quát xây dựng trên Win API

Trang 23

Các thành phần giao diện đồ họa GUI Các thành phần giao diện đồ họa GUI

• GUI: G raphics U ser I nterface

Trang 24

Các thành phần giao diện đồ họa GUI

Các thành phần giao diện đồ họa GUI

1 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,…

2 MDI - Multiple Document Interface

􀂐 Một cửa sổ làm việc chính (Frame window) và nhiều cửa sổ con (Childwindow)

􀂐 Cho phép thay đổi kích thước cửa sổ (Resizeable)

􀂐 Cho phép Maximize/Minimize/Close các cửa sổ con

􀂐 Ví dụ: Word, Excel, VC++,…

3 Dialog

􀂐 Một cửa sổ làm việc

􀂐 Thường kích thước cố định

􀂐 Thường không có menu bar

􀂐 Thường có các button, edit box, list-box,…

􀂐 Ví dụ: Calculator, CD Player,…

Trang 25

Các thành phần giao diện đồ họa GUI Các thành phần giao diện đồ họa GUI

Trang 27

Các thành phần giao diện đồ họa GUI Các thành phần giao diện đồ họa GUI

Trang 28

Các thành phần giao diện đồ họa GUI Các thành phần giao diện đồ họa GUI

Trang 29

GUI – control

Trang 31

Một chương trình tổng quát xây dựng trên Win32 API Một chương trình tổng quát xây dựng trên Win32 API

Các bước tạo lập chương trình

Trang 32

//Hiển thị cửa sổ//Thực hiện vòng lặp xử lý thông điệp

}

Trang 33

//Hiển thị cửa sổ//Thực hiện vòng lặp xử lý thông điệp

}

Trang 34

Tham số của hàm WinMain

Trong Win32, giá trị này = NULL

VD “winword c:\My documents\baitap.doc”

VD MAXIMIZE, MINIMIZE, SHOW, HIDE,…

Trang 35

//Hiển thị cửa sổ//Thực hiện vòng lặp xử lý thông điệp

}

Trang 36

Khai báo lớp cửa sổ

Khai báo lớp cửa sổ

WNDCLASS wc;

HWND hwnd;

MSG msg;

wc.style = 0; // Class style

wc.lpfnWndProc = (WNDPROC) WndProc; // Window procedure address wc.cbClsExtra = 0; // Class extra bytes

wc.cbWndExtra = 0; // Window extra bytes

wc.hInstance = hInstance; // Instance handle

wc.hIcon = LoadIcon (NULL, IDI_WINLOGO); // Icon handle wc.hCursor = LoadCursor (NULL, IDC_ARROW); // Cursor handle

//Background color

wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);

wc.lpszMenuName = NULL; // Menu name

wc.lpszClassName = "MyWndClass"; // WNDCLASS name

Trang 37

int cbWndExtra;

HINSTANCE hInstance; HICON hIcon;

HCURSOR hCursor;

HBRUSH hbrBackground ; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; } WNDCLASS, *PWNDCLASS;

Trang 38

Cấu trúc WNDCLASS Cấu trúc WNDCLASS

Trang 39

//Hiển thị cửa sổ//Thực hiện vòng lặp xử lý thông điệp

}

Trang 40

Đăng ký và tạo lớp cửa sổ

Trang 41

//Hiển thị cửa sổ //Thực hiện vòng lặp xử lý thông điệp

}

Trang 42

Hiển thị cửa sổ - vòng lặp xử lý thông điệp

Trang 43

Hàm xử lý Message của cửa sổ

LRESULT CALLBACK WndProc ( HWND hwnd, UINT message,

WPARAM wParam, LPARAM lParam) {

Trang 44

Tạo ứng dụng Win API bằng AppWizard

Trang 47

Ứng dụng Win API đơn giản – Source file

Trang 48

Ứng dụng Win API đơn giản – Resource

Trang 49

Ứng dụng Win API đơn giản – Source code

Trang 50

Ứng dụng Win API đơn giản – hàm WinMain

Trang 51

Ứng dụng Win API – hàm đăng ký lớp cửa sổ Ứng dụng Win API – hàm đăng ký lớp cửa sổ

Trang 52

Ứng dụng Win API – hàm tạo cửa sổ

Trang 53

Ứng dụng Win API – hàm xử lý thông điệp cửa sổ Ứng dụng Win API – hàm xử lý thông điệp cửa sổ

Trang 54

Ứng dụng Win API – hàm xử lý hộp thoại About

Ngày đăng: 01/09/2023, 20:54

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w