... ReleaseDC( HWND hWnd,
HDC hDC // handle to DC );
Chọn cc đối tượng vẽ vào trong DC
•HGDIOBJ SelectObject( HDC hdc, HGDIOBJ hgdiobj);
5
HBRUSH
• CreateBrushIndirect: Creates a brush with a specified ... tả:
Hãy đóng gói HDC thành lớp CMyDC nhằm hỗ trợ người lậptrìnhCtrên
Windows.
• Yêu c u:
classCMyDC {
Public:
PAINTSTRUCT m_ps;
HDC m_hdc;
HWND m_hwnd;
HDC BeginPaint(HWND);
void EndPaint();
void ... viết 1 chương trìnhc một robot bư c đi
trên màn hình
•Yêu c u:
–Mô tả dữ liệu
–Mô tả xử lý cc sự kiện c n thiết
20
DLL?
9
Robot
123
Chuỗi chuyển hình 1213-1213-…
19
Microsoft Foundation Class...
... - DLL). Windowscc chế liên kết những chương trình ứng
dụng với cc thủ t c ñư c cung c p trong thư viện liên kết ñộng.
Khả năng tương thích c a Windowsc ng rất cao. Cc chương trình ứng ... ñư c chọn (x c ñịnh màu c n chọn), và tiến hành bỏ chọn cc nút kh c bằng ñoạn lệnh
sau.
case WM_COMMAND:
switch (LOWORD (wParam))
{
case IDC_BLACK:
case IDC_RED:
case IDC_GREEN:
case ... này. ðoạn chương trình sau là khung sườn cho cc
chương trình viết trên Windows, bao gồm 2 hàm chính là :
WinMain : hàm chính c a chương trình th c hiện cc ch c năng :
• Khai báo lớp c a sổ....
... vi clậptrìnhCtrên
Windows. Ngoài ra, phần này c ng giới thiệu cc cơ chế và cc công c mà hệ điều hành cung c p
cho người lậptrình hay người phát triển cc ứng dụng trên Windows.
Cuối chương ... TRÌNHLẬPTRÌNHCTRÊN WINDOWS
Chương 1
TỔNG QUAN LẬPTRÌNHCTRÊN WINDOWS
1.1. MỞ ĐẦU
Để lậptrìnhtrên Microsoft Windows , chúng ta c n nắm đư ccc đ c điểm c bản nhất
c a hệ điều hành này. Chương ... chứa cc thao t c cần
thiết dưới dạng cc biểu tượng đ c trưng.
Ngoài ra c n rất nhiều cc điều khiển mà cc công clậptrình cung c p cho người lập
trình hay tự họ tạo ra dựa trên những thành...
... đến c a sổ cha c a
nó và c a sổ cha c thể thay đổi trạng thái c a cc thành phần điều khiển con như kích hoạt, đánh
dấu (check), bỏ dấu check (uncheck) bằng c ch gởi cc thông điệp đến cc thành ... c n
ngày nay chúng ít đư c dùng đến.
C c file chứa tài nguyên c a ứng dụng
• Cc file *.ico là cc biểu tượng (icon) đư c dùng trong chương trình. Thông
thường cc công clậptrìnhtrênWindows ... QUAN LẬPTRÌNHCTRÊN WINDOWS
1.1. MỞ ĐẦU
Để lậptrìnhtrên Microsoft Windows , chúng ta c n nắm đư ccc đ c điểm c bản nhất
c a hệ điều hành này. Chương này sẽ giới thiệu khái quát cc đ c điểm...
... vi clậptrìnhCtrên
Windows. Ngoài ra, phần này c ng giới thiệu cc cơ chế và cc công c mà hệ điều hành cung c p
cho người lậptrình hay người phát triển cc ứng dụng trên Windows.
Cuối chương ... thạo C mới h c
đư clậptrình Windows.
Để c thể lậptrìnhtrên nền Windows ngoài yêu c u về vi c sử dụng c ng clập trình,
người h cc n c n phải cc n bản về Windows, tối thiểu thì c ng ... nguyên c a ứng dụng
• Cc file *.ico là cc biểu tượng (icon) đư c dùng trong chương trình. Thông thường cc công
c lậptrìnhtrênWindows đều ccc tool để tạo cc ảnh này.
mỗi chương trình chạy...
... export cc class. Ứng dụng kh c có thể tạo cc object
từ class, ho c xây dựng cc lớp kế thừa từ class
DLL sẽ đư c liên kết với cc DLL chuẩn c a MFC theo c ch liên
kết động.
Chỉ ccc ứng ... với cc DLL
chuẩn c a MFC theo c ch liên kết tĩnh.
“using shared MFC DLL”: DLL sẽ đư c liên kết với cc DLL
chuẩn c a MFC theo c ch liên kết động.
MFC Extention DLL:
Cho phép export cc ... điểm:
Dễ th c hiện
Chương trìnhc thể chạy đ c lập, không c n cc file kèm theo
Chương trình sẽ chạy nhanh hơn (nếu kích thư c nhỏ)
Spring 200 4C4 W - DLL - Nguyen Tri Tuan - DH.KHTN Tp.HCM 6
Giới...
... Tp.HCM 15
C c khái niệm c bản - DC trong MFC…(tt)
VD1. Vẽ bằng CDC
CDC* pDC = GetDC();
// Cc lệnh vẽ …
ReleaseDC(pDC);
VD2. Xử lý thông điệp WM_PAINT, dùng lớp CDC
PAINTSTRUCT ps;
CDC* pDC ... niệm c bản - DC trong MFC
C c lớp liên quan đến DC
CDC: là lớp c sở dùng để quản lý DC
CPaintDC:
Dẫn xuất từ lớp CDC,
Dùng với cc thao t c vẽ trong vùng client
c a c a sổ
Chỉ ... niệm c bản - DC trong MFC…(tt)
VD4. Vẽ trên vùng client, dùng lớp CClientDC
void CMainWindow::OnLButtonDown(UINT nFlags,
CPoint point)
{
CRect rect;
GetClientRect(&rect);
CClientDC dc(this);
dc.MoveTo(rect.left,...
... menu
C c ví dụ:
Khi user chọn ch c năng vẽ Circle Æ c n thể hiện 1 dấu
check (;) phía trư c
Ch c năng Cut/Copy/Delete chỉ đư c kích hoạt khi user
đánh dấu chọn 1 đoạn text
Ch c năng ... phần c a c .trình (tt)
CWnd: lớp chính c a MFC để quản lý cc loại c a
sổ giao diện. C nhiều lớp đư c kế thừa từ lớp
này để quản lý cc loại c a sổ kh c nhau
(CTreeCtrl, CListBox, Cedit,…)
CFrameWnd: ... lớp CMainWindow, đư c
gọi khi c n c p nhật nội dung c a sổ. Hàm này đư c
định nghĩa chồng lên hàm chuẩn c a lớp CFrameWnd.
void CMainWindow::OnPaint () {
CPaintDC dc(this);
CRect rect;
GetClientRect...
... Tp.HCM 17
Minh họa c ch lậptrình Hook - C i đặt thủ t c Hook
Một ứng dụng c n phải th c hiện vi c Cài đặt thủ t c Hook
khi muốn giám sát message
Hàm SetWindowsHookEx sẽ c i đặt thủ t c Hook ... là một c chế trong lậptrình sự kiện,…
…cho phép ứng dụng c thể c i đặt một hàm
giám sát vào quá trình lưu chuyển cc thông
điệp
Æ ứng dụng c thể chặn và xử lý cc thông
điệp trư c khi ... Hook
…
8
Spring 200 4C4 W - Hook - Nguyen Tri Tuan - DH.KHTN Tp.HCM 15
Minh họa c ch lậptrình Hook
C c hàm thao t c với Hook
C i đặt thủ t c Hook
Ví dụ thủ t c Hook
Chuyển message cho thủ t c Hook...
... Sơ lư c
C c hàm quản lý vùng nhớ toàn cc chậm
và cung c p ít tính năng hơn cc hàm quản
lý bộ nhớ kh c nên ít đư c dùng
…Tuy nhiên, chúng vẫn đư c dùng với
DDE, Clipboard và cc đối ... c u tr c mô tả hình tròn
struct CIRCLE strCircle; // Lưu kết quả
if (OpenClipboard())
{
HANDLE hData = GetClipboardData(nID);
struct CIRCLE *p =
(struct CIRCLE *) GlobalLock(hData);
// Sao chép ... hiện hành
Chỉ c Clipboard Viewer hiện hành đư c
Windows gửi thông điệp mỗi khi c sự thay
đổi nội dung Clipboard…
…Clipboard Viewer hiện hànhc nhiệm vụ
gửi cc thông điệp này đến cho c c...
... một số trong mã ASCII
Ngoài ra, c n ccc tiêu chuẩn cho cc đ c tính
kh c như trường độ hay nhịp độ c a bản nh c
MIDI thường c kích thư c nhỏ
Không cc ch nào để th c hiện ghi hay phát ... chuỗi
C c câu lệnh bắt đầubằng từ khóa open, play,
stop,…
Ứng với mỗi t c vụ kh c nhau chúng ta sẽ cc u
lệnh với cc định dạng kh c nhau nhưng nhìn
chung chúng cc ng một c u tr c tổng ...
multimedia để yêu c u th c hiện cc thao t c: close,
play, stop…
wsprintf(lpszCommand, "Tên t c vụ %s [%s] %s",
lpszDeviceID, < ;C c cờ đ c biệt dành riêng c
thể c ho c không>,...