...
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. ...
... 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 cWindowsc 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...
... - 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 ... (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 ... đố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.
Để...
... 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...
... 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 ... 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.
Đư c sử dụng như là thư viện c sở để tạo ra những thư viện cao c p...
...
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: hwnd chỉ số c a sổ c n hiển thị.
nShow c ch th c hiển thị c a c a sổ, tham số này đư c nhận giá trị
lần đầu tiên c a hàm WinMain(), chúng c thể nhận cc giá trị sau:
Macro C ch th c hiển ... 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ỉ hàm xử lý thông
điệp c a sổ, định nghĩa hình dạng cho con...
... 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). 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...
... 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 ... là cc thanh c ng c (toolbar). Cc thanh c ng c này chứa cc ch c năng đư c sử dụng
thường xuyên trong th c đơn để giảm thời gian cho người dùng phải mở th c đơn và chọn. Thông
thường khi c n...
... 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...