Vẽ mô hình 3D InventorVisual C++ OpenGL DirectX Thư viện đồ họa Robot Simulator Software Kích thước, hình ảnh, sơ đồ,… Data files q, v, a STL files Bắt đầu Export Import Load Solve Conn
Trang 1BÀI 2
GIỚI THIỆU VISUAL C++ VÀ LẬP TRÌNH GIAO DIỆN MFC
Ths Nguyễn Xuân Hồng
Trang 2Vẽ mô hình 3D Inventor
Visual C++
OpenGL DirectX
Thư viện đồ họa
Robot Simulator
Software
Kích thước, hình ảnh, sơ đồ,…
Data files (q, v, a)
STL files
Bắt đầu
Export
Import Load
Solve
Connect
Add-in
Robot Simulator Programming
Dimensions
1 2
3
4
4
4 5
6
6 A
GIỚI THIỆU VISUAL C++ VÀ LẬP TRÌNH GIAO DIỆN MFC
Trang 3MỤC TIÊU
Có hiểu biết cơ bản về môi trường lập trình Visual C++.
Nắm được các thành phần quan trọng của thư viên MFC.
Có khả năng lập được chương trình giao diện MFC.
Trang 4Giới thiệu MFC
Lập trình giao diện MFC
NỘI DUNG
Trang 52
3
Giới thiệu Visual C++
Giới thiệu MFC
Lập trình giao diện MFC
NỘI DUNG
Trang 6HUST 9/7/2015 6
Giới thiệu Visual C++
• Microsoft Visual C++ (MSVC) là một môi trường
phát triển tích hợp (IDE) cho ngôn ngữ lập trình
C&C++
• Có các công cụ cho phát triển và gỡ lỗi mã nguồn
• Tích hợp thư viện lập trình giao diện đồ họa MFC cho
các ứng dụng chạy trên Windows
• Visual C++ nằm trong bộ Visual Studio của Microsoft
Trang 7Các phiên bản của Visual C++
• Visual C++ 1.0, là phiên bản đầu tiên của Visual C++, ra đời năm 1992
• Visual C++ 1.5, hỗ trợ thêm OLE 2.0 và ODBC cho MFC
• Visual C++ 2.0, là phiên bản đầu tiên chỉ dành riêng cho 32-bit
• Visual C++ 4.0, được thiết kế cho Windows 95, cũng như Windows NT
• Visual C++ 6.0, MFC 6.0, ra đời 1998
• Visual C++ NET 2002 (7.0) có một giao diện người dùng mới
• Visual C++ NET 2003 (7.1) là phiên bản hỗ trợ chuẩn C++ của ISO tốt nhất
• Visual C++ 2005 (8.0)
• Visual C++ 2008 (9.0) hỗ trợ các ứng dụng Uncode
• Visual C++ 2010 (10.0) chính thức hỗ trợ ISO C++0x
• Visual C++ 2012 (11.0)
Trang 9Tạo Project trong Visual Studio 2010
Ứng dụng giao diện MFC
Ứng dụng Win32 cơ bản
• Chọn menu File\New\Project…
Trang 10HUST 9/7/2015 10
Lựa chọn loại ứng dụng
• Chọn Console application
Trang 11Giao diện chương trình Visual Studio 2010
Solution Explorer
Resource View
Class View
Properties
Toolbox Output
Main Window
Trang 12HUST 9/7/2015 12
Cửa sổ Solution Explorer
• Hiển thị danh sách dạng cây bao gồm:
• Các project trong solution
• Các tệp tin h, cpp, …của một project
• Thực hiện các chức năng về solution, project,
Trang 13Cửa sổ Class View
• Hiển thị danh sách các project với danh
sách các class
• Hiển thị danh sách các biến, hàm của class
• Thực hiện các chức năng quản lý class
• Add function
• Add variable
Trang 14HUST 9/7/2015 14
Cửa sổ Resource View
• Hiển thị danh sách tài
nguyên trong project
• Bao gồm bitmap, icon,
menu, toolbar, dialog,…
Trang 15Cửa sổ Properties
Hiển thị các thông tin:
Thuộc tính của một đối tượng được
chọn
Danh sách các Events của một class
Danh sách các Message của một
class
Danh sách các virtual function của
một class
Chỉnh sửa các thuộc tính
Trang 17Cửa sổ Output
Build mode:
Hiển thị trạng thái của các project khi build
Hiển thị các Error, Warning
Debug mode:
Hiển thị các output debug của chương trình
Trang 18HUST 9/7/2015 18
Cửa sổ Mã nguồn chương trình
Trang 19Quy trình phát triển một chương trình C/C++
Bắt đầu
Công cụ soạn thảo (editor)
Trình biên dịch (compiler)
Lỗi dịch
Trình liên kết (linker)
Lỗi liên kết
Trình gỡ lỗi (debugger) Lỗi chạy CT
Chạy chương trình
Liên kết thư viện &
module khác
Dịch chương trình
Viết chương trình
F
F
F
Trang 20HUST 9/7/2015 20
Soạn thảo chương trình
Trang 21Trình biên dịch – Build Succeeded
• Chọn menu Build/Build Solution • Chuột phải vào project và chọn Build
F7
Trang 22HUST 9/7/2015 22
Trình biên dịch – Build Failed
F4
Trang 23Chạy chương trình
• Chọn menu Debug/Start Debugging hoặc Debug/Start Without Debugging
Trang 24HUST 9/7/2015 24
Trình gỡ lỗi Debugger
• Chạy chương trình ở chế độ Debugging
F5 – Debug/Continue
Shift+F5 – Stop Debug
F9 – Set break point
F11 – Step Info
F10 – Step Over
Shift+F11 – Step Out
Trang 25Một số cửa sổ khi chạy Debugging
Trang 26HUST 9/7/2015 26
Cửa sổ tìm kiếm thay thế
Trang 272
3
Giới thiệu Visual C++
Giới thiệu MFC
Lập trình giao diện MFC
NỘI DUNG
Trang 28HUST 9/7/2015 28
MFC – Microsoft Foundation Class
MFC là một thư viện các lớp (class, OOP) trong ngôn ngữ Visual
C++, được sử dụng để xây dựng các ứng dụng trên Windows
MFC được xây dựng trên cơ sở các hàm thư viện API của Windows
Trong một ứng dụng MFC, ta sẽ không gọi trực tiếp các hàm
Windows API mà sẽ tạo các object từ những lớp của MFC, sau đó gọi các hàm của object này.
Đa số các hàm của lớp MFC có cùng tên với những hàm Windows
API
Giới thiệu MFC
Trang 29 Việc sử dụng MFC có các ưu điểm sau:
+ Lập trình hướng đối tượng với C++
+ Đỡ phải ghi nhớ nhiều hàm và cấu trúc do được đóng gói sẵn trong các lớp
+ Được hỗ trợ rất tốt từ Winzard của Visual Studio, dễ dàng xây dựng được chương trình một cách nhanh chóng
Ưu điểm của lập trình MFC
Trang 30HUST 9/7/2015 30
Lịch sử của MFC
Product version .Net
Version Library MFC version Year introducedMicrosoft C/C++ 7.0 MFC 1.0 1992
Visual C++ NET 2002 (Visual C++ 7.0) 1.0 mfc70.dll MFC 7.0 February 2002
Visual C++ NET 2003 (Visual C++ 7.1) 1.1 mfc71.dll MFC 7.1 April 2003
Visual C++ 2005 (Visual C++ 8.0) 2.0 mfc80.dll MFC 8.0 October 2005
Visual C++ 2008 (Visual C++ 9.0) 3.5 mfc90.dll MFC 9.0 November 2007
Visual C++ 2010 (Visual C++ 10.0) 4.0 mfc100.dll MFC 10.0 April 2010
Visual C++ 2012 (Visual C++ 11.0) 4.5 mfc110.dll MFC 11.0 26 July 2012
Visual C++ 2013 (Visual C++ 12.0) 4.5.1 mfc120.dll MFC 12.0 5 October 2013
Visual C++ 2015 (Visual C++ 14.0) 4.6 Mfc140.dll MFC 14.0 20 July 2015
Trang 31Các loại Project Template MFC
Vào File/ New Project…/ Chọn MFC trong mục Visual C++
MFC ActiveX Control – Tạo
Trang 32việc với nhiều document AutoCad
Dialog based: Ứng dụng dựa trên
Trang 332
3
Giới thiệu Visual C++
Giới thiệu MFC
Lập trình giao diện MFC
NỘI DUNG
Trang 34HUST 9/7/2015 34
Giao diện người dùng
Giao diện người dùng là kết nối giữa người dùng và máy tính
Giao diện dòng lệnh (Console)
Giao diện người dùng đồ họa (GUI)
• Giao diện định hướng trực quan (WYSIWIG – What You See
Is What You Get)
• Người dùng tương tác với các đối tượng đồ họa
• Trực quan hơn
Trang 35Chương trình dựa trên giao diện văn bản
Quy trình thực hiện chương trình
Yêu cầu người sử dụng đưa thông tin vào;
Thực hiện một số thao tác;
In một số kết quả;
Yêu cầu người sử dụng đưa thông tin vào;
Tiếp tục
Trang 36HUST 9/7/2015 36
Tương tác người dùng trong giao diện đồ họa
Người dùng tương tác với giao diện đồ họa thông qua các thông điệp
Khi một sự kiện xảy ra, hệ điều hành sẽ gửi một thông điệp đến
Trang 37Lập trình hướng sự kiện
Cấu trúc chương trình giao diện cần đáp ứng các sự kiện người
dùng Các loại sự kiện: nhấn chuột, di chuyển chuột, bấm phím, v.v
– Trong Windows, được gọi là thông điệp (message)
Cấu trúc điều khiển chính là một vòng lặp sự kiện:
while (1) // Lặp vô tận {
• chờ đợi cho sự kiện tiếp theo
• gửi sự kiện tới thành phần giao diện thích hợp }
Bạn chỉ cần viết mã để đáp ứng với các sự kiện.
Mô hình giao diện đồ hoạ: Người sử dụng sẽ có thể đưa ra bất kỳ
Trang 38HUST 9/7/2015 38
Tạo ứng dụng giao diện SDI
Trang 39Mã nguồn chương trình MFC SDI
Trang 40HUST 9/7/2015 40
Chạy chương trình MFC SDI
Trang 41Các thành phần của chương trình MFC SDI
Menu bar
Toolbar
Status bar
Min/Max Close
Title
Vùng nội dung
Title bar
Icon
Dialog Box
Button Text
Trang 45Lớp quản lý document
class CBai22HelloMFCSDIDoc
Nhiệm vụ
Tạo dữ liệu của chương trình
Lưu trữ dữ liệu của chương trình
Trang 47Lớp hiển thị thông tin chương trình
class CAboutDlg
Nhiệm vụ
Là hộp thoại thông báo
Hiển thị thông tin chương trình
Hiệu chỉnh dialog trong ResouceView
Trang 48HUST 9/7/2015 48
Xử lý thông điệp trong các class MFC
Khai báo sử dụng thông điệp Khai báo xử lý các thông điệp
Trang 49Thực hành thêm mục vào menu
Open Menu from Resource View Add menu item Add Event Handler
1
6
Trang 50HUST 9/7/2015 50
Tạo ứng dụng giao diện Dialog based
Trang 51Mã nguồn chương trình MFC Dialog based
Trang 52HUST 9/7/2015 52
Chạy chương trình MFC Dialog based
Trang 53Cách tạo class dialog box
Trang 54HUST 9/7/2015 54
Cách hiển thị dialog box
DoModal
Modeless
Trang 55Các control làm việc trên dialog box
Trang 56HUST 9/7/2015 56
Thực hành add button to dialog box
Drag & Drop Change properties
Add Event Handler or Double Click
Trang 57Thực hành add Edit Control to dialog box
Drag & Drop Change properties
Add Variable
Trang 58HUST 9/7/2015 58
Xử lý dữ liệu trên dialog box
UpdateData(TRUE)
Đẩy dữ liệu từ control (IDC_EDIT_TEST) trên dialog
box xuống biến nhận dữ liệu (m_sText)
UpdateData(FALSE)
Đẩy dữ liệu từ biến nhận dữ liệu (m_sText) lên control
(IDC_EDIT_TEST) trên dialog
Trang 60HUST 9/7/2015 60
Bài tập
Tạo ứng dụng MFC SDI and Dialog box thể hiện chương
trình tính toán Calculator