... về kích thư c vùng client c a c a sổ hiện hành
RECT rect;
GetClientRect(hWnd, &rect);
// Tạo MDC tương thích với DC c a c a sổ
HDC hMemDC;
hMemDC = CreateCompatibleDC(hdc);
// Chọn ... liệu, cc
thông điệp này sẽ đư c truyền một c ch đồng
bộ, đầu tiên thủ t c Windows c a c a sổ trên
c ng bị mất kích hoạt, sau đó đến thủ t c của
c a sổ trên c ng đư c kích hoạt. Nếu cc cửa ...
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_BT1);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground...
... với c a
sổ (Window Class). Đây là c u tr c dữ liệu mô tả tính chất c a c a
sổ, lần lượt ta gán cc giá trị ban đầu cho cc thành phần c a c u
tr c lớp c a sổ, bao gồm: Kích thư c, kiểu, địa chỉ ... này đư c đặt trongcc thư viện liên kết động
(Dynamic Link Library – DLL). Cc chương trình ứng dụng sử dụng chúng
thông qua cc lời gọi hàm và chỉ chia sẻ đư c khi trong máy cc i đặt
Windows. ...
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_BT1);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground...
... với c a
sổ (Window Class). Đây là c u tr c dữ liệu mô tả tính chất c a c a
sổ, lần lượt ta gán cc giá trị ban đầu cho cc thành phần c a c u
tr c lớp c a sổ, bao gồm: Kích thư c, kiểu, địa chỉ ...
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_BT1);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground ... (HBRUSH)(COLOR _WINDOW+ 1);
wcex.lpszMenuName = (LPCSTR)IDC_BT1;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance,(LPCTSTR)IDI_SMALL);
return RegisterClassEx(&wcex);...
...
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_BT1);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground ...
2. Cc thư viện lậptrìnhc a Windows
SDK – Software Development Kit
Là bộ thư viện lậptrình nền tảng c a HĐH Windows.
Cung c p tất ccc công cc n thiết để xây dựng 1 ứng dụng trên
Windows. ... này đư c đặt trongcc thư viện liên kết động
(Dynamic Link Library – DLL). Cc chương trình ứng dụng sử dụng chúng
thông qua cc lời gọi hàm và chỉ chia sẻ đư c khi trong máy cc i đặt
Windows....
... - DLL). Windows cc 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 Windows c ng rất cao. Cc chương trình ứng ... (wParam))
{
case IDC_BLACK:
case IDC_RED:
case IDC_GREEN:
case IDC_YELLOW:
case IDC_BLUE:
case IDC_MAGENTA:
case IDC_CYAN:
case IDC_WHITE:
iColor = LOWORD (wParam) ;
for( i = IDC_BLACK, i ... ñối tượng Icon trongtrong m c Type,
rồi gõ ñịnh danh c a Icon c n thêm vào trong m c Image. Nếu ñã tạo ra biểu tượng Icon trư c
thì chỉ vi c chọn Icon từ danh sách cc Icon trong m c Image....
... 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ình trên Windows ... vi clậptrìnhC trê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ÌNHC TRÊN WINDOWS
Chương 1
TỔNG QUAN LẬPTRÌNHC TRÊN WINDOWS
1.1. MỞ ĐẦU
Để lậptrình trê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...
... 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ình trên Windows ... điệp WM_COMMAND đế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 ... liệu kh c để tương t c với c a
sổ và ứng dụng.
Tất ccc cửa sổ đều đư c tạo từ một c u tr c đư c cung c p sẵn gọi là lớp c a sổ
(window class). C u tr c này là một tập mô tả cc thu c tính...
... 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ìnhC trê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...
... 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ình trên Windows ñều ccc tool ñể tạo cc ảnh này.
• Con trỏ chuột c a ứng dụng c thể ñư c vẽ ... c thể chuyển sang dạng Unicode
và DBCS.
Tech24.vn
NGÔN NGỮ LẬPTRÌNHLẬPTRÌNHC TRÊN WINDOWS
Trang 6
ðiều trư c tiên c a người h clậptrìnhC trên Windows là phải biết lậptrình C, sách ... - DLL). Windows cc 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 Windows c ng rất cao. Cc chương trình ứ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ình trên Windows đều ccc tool để tạo cc ảnh này.
mỗi chương trình chạy ... vi clậptrìnhC trê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 ... OR.
lpfnWndProc Con trỏ đến thủ t c window
cbClsExtra Số byte đư c cấp phát thêm sau
c u tr c window- class
M c định
cbWndExtra Số byte đư c cấp phát thêm sau
một instance c a window
M c định
hInstance Định...
... 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 ... viện
vào trong những module gọi
Ưu đ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...
... 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 ... Tp.HCM 13
C c khái 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 ... 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...