4.11. Hộp ngày giờ-Date Time Picker (COleDateTime, CTime)
4.12. Hộp ngày tháng-Month Calendar Control (COleDateTime, CTime)
4.13. Thời gian-Timer (COleDateTime, CTime)
4.14. Thanh tiến trình-Progress (CProgressCtrl)
4.15. Thanh cuộn-Scroll Bar (CScrollBar)
4.16. Thanh trượt-Slider (CSliderCtrl)
4.17. Hộp tăng giảm giá trị-Spin ()
4.18. Cây-Tree Control (CTreeCtrl)
4.19. Thẻ-Tab Control (CTreeCtrl)
4.20. Danh sách-List Control (CListCtrl)
4.21. Picture
4.22. Images, Bitmaps và Icons
4.23. Hoạt hình-Animate
4.24. Hộp địa chỉ mạng-IP Address
4.25. Hộp thông báo-Message Box (Lớp CWnd)
5. Giải thuật (Algorithm)
5.1. Thoát-Exit
5.2. GetDlgItem
5.3. ShowWindow
5.4. UpdateData
Nội dung
1. Cài đặt (Setup)
1.1. VisualC++ 6.0
2. Cửa sổ làm việc (Window)
2.1. Khởi động-Open,Thoát-Exit
Giới thiệu - Là 1 trình biên dịch, giúp người lập trình viên viết ra các chương trình ứng dụng trên Windows …
Khởi động-
Open
- Click chọn nút nút > chọn > chọn Microsoft Visual Studio 6.0 > chọn Microsoft
Visual C++6.0 .
Thoát-Exit
2.2. Giao diện (Interface)
Thanh trình đơn-Menu
bar
Thanh công cụ-Tool bar * Thanh công cụ Chuẩn-Standard
* Thanh công cụ WizardBar: Hiển thị các lớp đang sử dụng và các hàm đang sử dụng trong
lớp đó.
* Thanh công cụ Build MiniBar: Biên dịch và chạy chương trình.
* Thanh công cụ Điều khiển-Control Toolbar: Thiết kế giao diện chương trình.
* Khung panel Vùng làm việc-Workspace
- Thẻ : Hiển thị dạng cây các lớp, hàm, biến sử dụng trong chương trình.
+ Lớp-Class .
+ Hàm-Function .
+ Biến-Variable .
- Thẻ : Hiển thị các thành phần của chương trình:
+ Dialog: Cửa sổ hộp thoại.
+ Icon: Biểu tượng.
+ Menu: Thanh trình đơn.
+ Toolbar: Thanh công cụ.
+ String Table: Bảng chuỗi.
+ Accelerator: Phím tắt.
+ Version: Phiên bản.
- Thẻ : Hiển thị dạng cây các file chương trình:
+ Resource Files: File mã nguồn chương trình.
+ Header Files: File hỗ trợ biên dịch chương trình.
+ Resource Files: File tài nguyên chương trình.
GV: Nguyễn Viết Nam
Mở ứng dụng đã lưu-Open
1
* Khung panel Thông báo-Output: Thông báo kết quả khi biên dịch và chạy chương trình.
Ấn phím Alt + 2
Vùng làm việc-
Workspace
* Vùng soạn thảo: Thiết kế giao diện và viết mã chương trình.
3. Dự án (Project) - DPW
Tạo mới-New * Mở hộp thoại New:
Click chọn menu > chọn New.
Ấn phím Ctrl + N.
- Sau đó xuất hiện hộp thoại New:
* Ứng dụng Windows:
- Chọn thẻ > chọn mục ở khung danh sách.
- Nhập tên ứng dụng vào hộp .
- Chọn vị trí lưu ở hộp .
- Chọn nút .
- Chọn:
+ Hộp : Để tạo ứng dụng dạng tài liệu đơn.
+ Hộp : Để tạo ứng dụng dạng tài liệu đa.
GV: Nguyễn Viết Nam
Khởi động-Open
Tạo 1 ứng dụng mới, dùng tên tạm-New
Lưu ứng dụng-Save
Viết chương trình-Coding
Chạy chương trình-Compile Viết chương trình tiếp-Coding next
Cập nhật ứng dụng-Save
Lưu 1 bản sao của ứng dụng-Save as
Đóng-Close
Mở ứng dụng đã lưu-Open
2
+ Hộp : Để tạo ứng dụng dạng hộp thoại.
- Chọn nút .
- Chọn nút .
- Khi đó VC++ 6.0 tạo ra:
+ Ứng dụng tài liệu đơn:
+ Ứng dụng tài liệu đa:
GV: Nguyễn Viết Nam
3
+Ứng dụng hộp thoại:
- Trong đó:
+ Các file vùng làm việc *.dsw (workspace) và dự án *.dsp (project) .
+ Các file mã nguồn chương trình *.cpp và StdAfx.cpp .
+ Các file hỗ trợ biên dịch StdAfx.h , *.pch.
+ File tài nguyên chương trình *.rc .
+ File thông tin lớp *.clw.
+ Thư mục chương trình biên dịch Debug.
+ Thư mục tài nguyên res.
* Ứng dụng Dòng lệnh-Console:
C1: Chọn thẻ > chọn mục > chọn hộp > khi đó VC6
tạo ra:
+ Các file vùng làm việc *.dsw (workspace) và dự án *.dsp (project) .
+ Các file mã nguồn chương trình *.cpp và StdAfx.cpp .
+ Các file hỗ trợ biên dịch StdAfx.h , *.pch.
+ Thư mục chương trình biên dịch Debug.
C2: Chọn thẻ > chọn mục .
GV: Nguyễn Viết Nam
4
Lưu trữ-Save
* Cập nhật ứng dụng:
C1: Click chọn menu > chọn Save Workspace.
C2: Click chọn menu > chọn Save All.
* Cập nhật file mã nguồn:
Click chọn menu > chọn Save.
Ấn phím Ctrl + S.
Chạy chương
trình-Compile
* Biên dịch-Compile:
C1: Click chọn nút Build .
C2: Click chọn menu > chọn Build hay Rebuild All.
Ấn phím F7.
* Chạy-Run:
C1: Click chọn nút Execute Program .
C2: Click chọn menu > chọn Execute.
Ấn phím Ctrl + F5.
Đóng-Close
* Đóng ứng dụng:
Click chọn menu > chọn Close Workspace.
Mở-Open
* Mở hộp thoại Open:
C1: Click chọn nút Open .
C2: Click chọn menu > chọn Open.
Ấn phím Ctrl + O.
- Sau đó xuất hiện hộp thoại Open:
- Chọn mục Workspace (*.dsw, *.mdp) ở hộp .
- Chọn vị trí lưu ứng dụng cần mở ở hộp .
- Chọn tên ứng dụng cần mở ở khung danh sách bên dưới rồi chọn .
4. Giao diện (Interface)
4.1. Trình đơn-Menu (CWnd,CMenu)
Thiết kế-Design
Tạo-Create
Vẽ-Draw Tài liệu đơn, đa
(Single, Multiple
Document)
- Có sẵn menu là .
Hộp thoại (Dialog) - Mở hộp thoại hộp thoại Insert Resource:
Click chọn menu > chọn Resource.
Ấn phím Ctrl + R.
- Sau đó xuất hiện hộp thoại Insert Resource:
GV: Nguyễn Viết Nam
Biên dịch-Compile Chạy-Run Biên dịch,Chạy-Compile,Run
Chạy từng bước-Debug
5
- Chọn mục ở khung danh sách Resource Type > chọn nút
.
- Khi đó xuất hiện menu mới là trong khung
Workspace ở thẻ Resource View.
Viết mã-Coding
Trình đơn ngữ cảnh-
Context Menu
- Giống Menu.
Gán Thuộc tính- Assign Properties
Thiết kế-
Design
* Nhập menu:
- Double Click lên menu là trong khung Workspace ở thẻ .
- Click chuột phải lên vùng trống của menu > chọn Properties.
- Sau đó xuất hiện hộp thoại Menu Properties của menu như hình sau:
+ Nhập tên định danh của menu ở hộp .
- Chọn vùng và nhập menu.
- Sau đó xuất hiện hộp thoại Menu Item Properties của menu như hình sau:
+ Nhập nhãn hiển thị của menu ở hộp . VD: Tap tin.
- Tiếp theo chọn vùng bên cạnh để nhập menu cùng cấp hay menu con.
+ Chọn hộp nếu muốn tạo đường ngăn cách các mục menu.
- Rồi ấn phím Enter.
- Ấn phím ESC để hủy bỏ gán thuộc tính.
* Kết nối menu với hộp thoại (Dialog):
Tài liệu đơn, đa
(Single, Multiple
Document)
- Menu đã kết nối sẵn.
Hộp thoại (Dialog)
- Click chuột phải lên Hộp thoại-Dialog > chọn Properties > chọn tên định danh
của menu ở hộp . VD: IDR_MENU.
- Lưu ý: tên định danh của từng menu được tạo tự động theo cú pháp
ID_TênMenu_TênMenuCon.
Viết mã-
Coding
Trình đơn
ngữ cảnh-
Context
Menu
- Giống Menu.
GV: Nguyễn Viết Nam
6
Lập trình-Progarmming
Khai báo biến-
Variable Declaration
Chèn Thông điệp-
Add Message
- Double Click lên menu là trong khung Workspace ở thẻ .
- Click chuột phải lên menu > chọn ClassWizard.
Tài liệu đơn, đa
(Single, Multiple
Document)
- Đã có sẵn.
Hộp thoại (Dialog)
- Xuất hiện hộp thoại Adding a Class:
- Chọn hộp > chọn OK.
- Chọn lớp Dlg (ví dụ Cbai1Dlg) trong khung
.
- Chọn thẻ > sau đó xuất hiện hộp thoại MFC ClassWizard như hình sau:
Tài liệu đơn, đa
(Single, Multiple
Document)
- Chọn lớp View (ví dụ Cbai1View) ở hộp
.
Hộp thoại (Dialog)
- Chọn tên định danh của menu ở khung Object IDs > chọn thông điệp ở khung Messages:
GV: Nguyễn Viết Nam
7
Thông điệp Ý nghĩa sự kiện
COMMAND Nhấp chuột
UPDATE_COMMAND_UI Cập nhật menu
- Chọn nút > sau đó xuất hiện hộp thoại Add Member Fucntion.
+ Đặt tên hàm cho hộp nhập liệu ở hộp . Các trường hợp đặt tên
hàm:
Thông điệp Tên hàm Ví dụ
COMMAND OnMenuMenuCon OnTaptinMo
UPDATE_COMMAND_UI OnUpdateMenuMenuCon OnUpdateTaptinMo
- Chọn nút để xóa hàm.
- Chọn nút để viết mã lệnh trong hàm như sau:
Thông điệp Mã
COMMAND
void CTen_Ung_DungDlg::OnMenuMenuCon()
{
// TODO: Add your control notification handler code here
}
UPDATE_COMMAND_UI
void CTen_Ung_DungView::OnUpdateMenuMenuCon(CCmdUI*
pCmdUI)
{
// TODO: Add your command update UI handler code
here
if(…)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
Trình đơn ngữ cảnh-
Context Menu
- Mở hộp thoại MFC ClassWizard.
- Chọn thẻ > sau đó xuất hiện hộp thoại MFC ClassWizard như hình sau:
- Chọn tên định danh của Hộp thoại-Dialog ở khung Object IDs > chọn thông điệp ở khung
Messages:
Thông điệp Ý nghĩa sự kiện
WM_CONTEXTMENU Nhấp chuột phải lên Dialog
- Chọn nút .
- Chọn nút để xóa hàm.
- Chọn nút để viết mã lệnh trong hàm như sau:
void CTen_Ung_DungDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
}
Viết mã-Coding
Lập trình- - Ví dụ-Example:
GV: Nguyễn Viết Nam
8
Progarmming void CMenuDlg::OnPheptinhCong()
{
// TODO: Add your command handler code here
UpdateData(TRUE);
m_c = m_a + m_b;
UpdateData(FALSE);
checkPT(MNU_CONG);
}
void CMenuDlg::OnPheptinhTru()
{
// TODO: Add your command handler code here
UpdateData(TRUE);
m_c = m_a - m_b;
UpdateData(FALSE);
checkPT(MNU_TRU);
}
void CMenuDlg::OnPheptinhNhan()
{
// TODO: Add your command handler code here
UpdateData(TRUE);
m_c = m_a * m_b;
UpdateData(FALSE);
checkPT(MNU_NHAN);
}
void CMenuDlg::OnPheptinhChia()
{
// TODO: Add your command handler code here
UpdateData(TRUE);
if(m_b!=0)
{
m_c = m_a / m_b;
UpdateData(FALSE);
checkPT(MNU_CHIA);
}
else
MessageBox("Loi chia 0");
}
void CMenuDlg::OnPheptinhKetthuc()
{
// TODO: Add your command handler code here
OnOK();
}
CWnd::SetMenu
Mục đích
(Purpose)
Sets the menu to the specified menu.
Đặt một thanh menu vào cửa sổ.
Cú pháp
(Syntax)
BOOL SetMenu(
CMenu* pMenu
);
Ví dụ
(Example)
CWnd::GetMenu
Mục đích
(Purpose)
Retrieves a pointer to the menu for this window.
Hàm trả về con trỏ quản lý thanh Menu của một cửa
sổ.
Cú pháp
(Syntax)
CMenu* GetMenu( ) const;
Ví dụ
(Example)
CMenu::GetSubMenu
Mục đích
(Purpose)
Retrieves a pointer to a pop-up menu.
Trả về một con trỏ đối tượng CMenu của một popup
menu.
Cú pháp CMenu* GetSubMenu(
GV: Nguyễn Viết Nam
9
(Syntax)
int nPos
) const;
Ví dụ
(Example)
CMenu::TrackPopupMenu
Mục đích
(Purpose)
Displays a floating pop-up menu at the specified
location and tracks the selection of items on the pop-
up menu.
Hiển thị một popup menu tại một vị trí xác định.
Cú pháp
(Syntax)
BOOL TrackPopupMenu(
UINT nFlags,
int x,
int y,
CWnd* pWnd,
LPCRECT lpRect = 0
);
Ví dụ
(Example)
void CMenuDlg::OnContextMenu(CWnd* pWnd,
CPoint point)
{
// TODO: Add your message handler code
here
CMenu* pMenu = GetMenu();
CMenu* pSubMenu = pMenu-
>GetSubMenu(0);
pSubMenu-
>TrackPopupMenu(TPM_LEFTALIGN |
TPM_RIGHTBUTTON, point.x, point.y, this);
}
CMenu::LoadMenu
Mục đích
(Purpose)
Loads a menu resource from the application's
executable file and attaches it to the CMenu object.
Nạp và gắn kết một thanh menu vào một đối tượng
thuộc lớp CMenu.
Cú pháp
(Syntax)
BOOL LoadMenu(
LPCTSTR lpszResourceName
);
BOOL LoadMenu(
UINT nIDResource
);
Ví dụ
(Example)
CMenu::CheckMenuItem
Mục đích
(Purpose)
Adds check marks to or removes check marks from
menu items in the pop-up menu.
Đặt dấu Check hay loại bỏ dấu Check cho một mục
chọn trên thanh menu.
Cú pháp
(Syntax)
UINT CheckMenuItem(
UINT nIDCheckItem,
UINT nCheck
);
Ví dụ
(Example)
void CMenuDlg::checkPT(UINT menu_id)
{
CMenu* pMenu = GetMenu();
pMenu->CheckMenuItem(MNU_CONG,
MF_UNCHECKED);
pMenu->CheckMenuItem(MNU_TRU,
MF_UNCHECKED);
pMenu->CheckMenuItem(MNU_NHAN,
MF_UNCHECKED);
pMenu->CheckMenuItem(MNU_CHIA,
MF_UNCHECKED);
pMenu->CheckMenuItem(menu_id,
MF_CHECKED);
}
CMenu::EnableMenuItem
Mục đích
(Purpose)
Enables, disables, or dims a menu item.
Enables, Disables một mục chọn trên thanh menu.
Cú pháp
(Syntax)
UINT EnableMenuItem(
UINT nIDEnableItem,
GV: Nguyễn Viết Nam
10
[...]... Nhập tên định danh của nhãn ở hộp Thiết kế-Design + Nhập nhãn hiển thị của nhãn ở hộp + Bỏ chọn hộp nếu muốn ẩn nhãn + Chọn hộp nếu muốn vô hiệu hóa nhãn - Chọn thẻ VD: IDC_STATIC_GIOITHIEU VD: Visual C++ 6.0 > xuất hiện hộp thoại Edit Properties như hình sau: + Chọn hộp để cho nhãn hiển thị chuỗi - Rồi ấn phím Enter - Ấn phím ESC để hủy bỏ gán thuộc tính Viết mã-Coding Lập trình-Progarmming Khai . … Khởi động- Open - Click chọn nút nút > chọn > chọn Microsoft Visual Studio 6. 0 > chọn Microsoft Visual C++ 6. 0 . Thoát-Exit 2.2. Giao diện (Interface) Thanh trình đơn-Menu bar Thanh. 1. Cài đặt (Setup) 1.1. Visual C++ 6. 0 2. Cửa sổ làm việc (Window) 2.1. Khởi động-Open,Thoát-Exit Giới thiệu - Là 1 trình biên. danh của nhãn ở hộp . VD: IDC_STATIC_GIOITHIEU. + Nhập nhãn hiển thị của nhãn ở hộp . VD: Visual C++ 6. 0. + Bỏ chọn hộp nếu muốn ẩn nhãn. + Chọn hộp nếu muốn vô hiệu hóa nhãn. - Chọn thẻ >