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

Tạo cho sinh viên một nền tảng trong việc tiếp thu

các ngôn ngữlập trình cấp cao khác trên Windows

như: Visual Basic, Delphi, C++ Builder, C#, Visual

basic.Net, J Builder, Java.

• Tạo cho sinh viên một kiến thức cơbản đểcó thểtự

nghiên cứu tiếp các vấn đềkhác trong việc lập trình

trên Windows như: DDE, OLE, giao tiếp với thiết bị

ngoại vi, .

pdf77 trang | Chuyên mục: Visual C++ | Chia sẻ: dkS00TYs | Lượt xem: 2722 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Lập trình Windows - Giới thiệu tổng quan về học phần lập trình Windows, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
i dùng các thư viện 
Multimedia riêng
Tích hợp sẵn Multimedia
Ứng dụng 16 bits Hỗ trợ 32 bits hoặc hơn nữa 
Không hỗ trợ nhiều công nghệ Hỗ trợ nhiều công nghệ DLL, 
COM, DDE, OLE…
Một số khái niệm cơ bản
Khái niệm Diễn giải
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 
window và các hãng khác
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
Lập trình Windows - lập trình sự kiện
Sự kiện và thông điệp
Lập trình Windows - lập trình sự kiện
Keyboard
Mouse
Other device
Device driver
System queue Application
queue
GetMessage()
TranslateMessage()
DispatchMessage()
DefWindowProc()
WindowProc()
Qui trình xử lý thông điệp
Sự kiện và xử lý thông điệp
WinMain
Window 
Procedure
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
Các thành phần giao diện đồ họa - GUI
™ GUI : Graphics User Interface
™ Các dạng GUI cơ bản
Dialog SDI MDI
Các thành phần giao diện đồ họa - GUI
™ Dialog
™ SDI – Single Document Interface
™ MDI – Multiple Document Interface
ƒ Có một cửa sổ làm việc
ƒ Thường có kích thước cố định
ƒ Thường không có menu bar
ƒ Có 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ửa sổ con
ƒ Có một cửa sổ làm việc chính (Main frame) và nhiều cửa sổ con 
(Child Frame)
ƒ Cho phép thay đổi kích thước cửa sổ (Resizeable)
ƒ Cho phép Minimize/Maximize/Close/Arrange/Cascade cửa sổ con
Calculator Paint Workflow Editor
Các thành phần giao diện đồ họa - GUI
Desktop
Window 
Shortcut
Icon
Control
Dialog
box
App
Window 
Child
Window 
Child
Window 
Parent
Window 
Các thành phần giao diện đồ họa - GUI
Window 
Caption
Window
Icon
Tool bar
Client
Area
Minimized,
Restored, 
Maximized 
buttons
Status 
bar
Title bar
Menu 
bar
Dialog 
bar
Scroll 
bar
Các thành phần của 1 cửa sổ chuẩn
GUI – Controls
Property sheet
Combo box 
(Edit text + List box
Push button
Static text
Push button
Drop down list
Check box
Các dạng control chuẩn của windows
Frame
GUI – Controls
Property sheet
Radio button
Push button
Static text
Push button
Image
Check box
Các dạng control chuẩn của windows
Spin
Edit text
GUI – Controls
Title barMenu
Combo Box 
Scroll bar
Status bar
Tree
View
List view
Tool bar
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
Tài nguyên của ứng dụng (Resources)
™ Resource là một đối tượng (Object) được sử dụng trong 
ứng dụng, ví dụ: Menu bar, tool bar, dialog, icon, cursor, 
bitmap… 
™ Resource được định nghĩa bên ngoài (tách biệt với 
source code) và được thêm vào trong tập tin thi hành 
(EXE) của ứng dụng khi biên dịch (linking)
Source code ResourcesCompiler
Resource
Compiler
OBJ files Resource file
(Res)
Linker
.EXE
Qui trình biên dịch ứng dụng Visual C++
Source 
code
Resource 
Linker
Tài nguyên của ứng dụng – Tool bar
Tài nguyên của ứng dụng – Accelerator
Tài nguyên của ứng dụng – Bitmap
Tài nguyên của ứng dụng – Cursor
Demo
Tài nguyên của ứng dụng – Dialog
Tài nguyên của ứng dụng – Icon
Tài nguyên của ứng dụng – Menu
Tài nguyên của ứng dụng – String table
Demo
Tài nguyên của ứng dụng – Tool bar
Tài nguyên của ứng dụng – Version Info
Loại Diễn giải
Accelerator Bảng mô tả phím tắt (Hot- key)
Bitmap Ảnh bitmap
Caret Con trỏ văn bản
Cursor Con trỏ chuột
Dialog box Khung hộp thoại
Enhanced 
metafile
Tập hợp các cấu trúc để lưu ảnh (picture) theo định dạng “độc lập thiết 
bị” (Device Independent format)
Font Font chữ
Icon Biểu tượng
Menu Menu
String table Bảng mô tả các chuỗi ký tự
Version 
information
Bảng mô tả thông tin “phiên bản”
Tài nguyên của ứng dụng (Resources)
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
Bộ thư viện SDK – Software Developer Kit
™ SDK là bộ thư viện lập trình nền tảng của hệ 
điều hành Windows 
™ SDK cung cấp tất cả các công cụ cần thiết để 
xây dựng một ứng dụng trên Windows
™ SDK được sử dụng như là thư viện cơ sở để 
tạo ra những thư viện cấp cao hơn trong 
những ngôn ngữ lập trình. Ví dụ: MFC của 
Visual C++, OWL của Borland,…
Một số thành phần tiêu biểu của SDK
™Win32 API
™ GDI/GDI+
™Windows Multimedia
™ OpenGL
™ DirectX
™ COM/COM+
™ ADO (ActiveX Data Object)
™ OLE DB…
Tham khảo chi tiết trong
MSDN
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
Mô hình lập trình Windows
WinMain
Window 
Procedure
Một chương trình tổng quát xây dựng trên API
#include 
LONG WINAPI WndProc (HWND, UINT, WPARAM, LPARAM); 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR 
lpszCmdLine, int nCmdShow) 
{
//Khai báo lớp cửa sổ
//Đăng ký lớp cửa sổ
//Tạo lập cửa sổ
//Hiển thị cửa sổ
//Thực hiện vòng lặp xử lý thông điệp
}
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 
wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1); // 
Background color
wc.lpszMenuName = NULL; // Menu name
wc.lpszClassName = "MyWndClass"; // WNDCLASS name 
Cấu trúc WNDCLASS
typedef struct WNDCLASS {
UINT style; 
WNDPROC lpfnWndProc; 
int cbClsExtra; 
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground ;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS, *PWNDCLASS;
Thuộc tính Ý nghĩa
Style Kiểu dáng của lớp
lpfnWndProc Hàm tiếp nhận và xử lý thông điệp
cbClsExtra Số byte dành riêng cho class (<=40 bytes)
cbWndExtra số byte dành riêng cho mỗi cửa sổ thuộc class (<=40 bytes)
hInstance Instance của ứng dụng thực hiện việc đăng ký class
hIcon
Handle của icon, xác định biểu tượng của cửa sổ
hCursor Handle của cursor, xác định dạng cursor trong vùng client
hbrBackground Handle của brush, xác định cách tô vùng client; +1 nếu muốn sử dụng màu mặc định của hệ thống. Ví dụ: COLOR_BACKGRAOUND + 1
lpszMenuName Tên menu bar, chuỗi kết thúc bằng 0
lpszClassName Tên lớp, chuỗi kết thúc bằng 0
Cấu trúc WNDCLASS
Đăng ký và tạo lập lớp cửa sổ
RegisterClass (&wc);
hwnd = CreateWindow (
"MyWndClass", // WNDCLASS name 
"SDK Application", // Window title 
WS_OVERLAPPEDWINDOW, // Window style
CW_USEDEFAULT, // Horizontal position
CW_USEDEFAULT, // Vertical position
CW_USEDEFAULT, // Initial width
CW_USEDEFAULT, // Initial height
HWND_DESKTOP, // Handle of parent window
NULL, // Menu handle
hInstance, // Application's instance handle
NULL // Window-creation data ); 
Hiển thị cửa sổ - vòng lặp xử lý thông điệp
ShowWindow (hwnd, nCmdShow); 
UpdateWindow (hwnd);
while (GetMessage (&msg, NULL, 0, 0))
{ 
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam; 
Hàm xử lý Message của cửa sổ
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM 
lParam) 
{
PAINTSTRUCT ps; 
HDC hdc; 
switch (message) {
case WM_PAINT: 
hdc = BeginPaint (hwnd, &ps); 
Ellipse (hdc, 0, 0, 200, 100);
EndPaint (hwnd, &ps); 
return 0; 
case WM_DESTROY: 
PostQuitMessage (0); 
return 0;
} 
return DefWindowProc (hwnd, message, wParam, lParam); 
}
Tạo ứng dụng Win API bằng AppWizard
™ Chọn menu File Æ New
™ Chọn Tab Projects
™ Chọn loại project “Win32 Application”
™ Đặt tên project trong ô “Project name”
™ Xác định đường dẫn thư mục trong “Location”
™ Chọn option “Create new workspace”
™ Nhấn “OK” qua bước sau
Tạo ứng dụng Win API bằng AppWizard
Tên 
projec
t
Thư mục lưu 
project
Các loại ứng 
dụng trên 
windows
Tạo ứng dụng Win API bằng AppWizard
Chọn option “A typical Hello World application” để 
AppWizard tự động tạo ra ứng dụng mẫu
Ứng dụng Win API đơn giản – Source file
Ứng dụng Win API - Resource
Ứng dụng Win API – Source code
Ứng dụng Win API – hàm WinMain
Ứng dụng Win API – hàm đăng ký lớp cửa sổ
Ứng dụng Win API – hàm tạo cửa sổ
Ứ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ý hộp thoại About
Ứng dụng Win API – kết quả chạy chương trình
Ứng dụng Win API – kết quả chạy chương trình

File đính kèm:

  • pdfBài giảng Lập trình Windows - Giới thiệu tổng quan về học phần lập trình Windows.pdf
Tài liệu liên quan