Bài giảng Lập trình MiniChat bằng VC++ dùng cơ chế xử lý sự kiện của Nguyễn Quang Hùng sau đây sẽ hướng dẫn các bạn một cách cụ thể và chi tiết về việc lập trình MiniChat bằng VC++. Mời các bạn tham khảo bài giảng để nắm bắt nội dung chi tiết, với các bạn chuyên ngành Công nghệ thông tin thì đây là tài liệu hữu ích.
Trang 1HCMC Univ Technology – Faculty of Information Technology
Lập trình MiniChat bằng VC++ dùng cơ chế xử lý sự kiện
Nguyễn Quang Hùng
E-mail: hungnq2@dit.hcmut.edu.vn
Website: www.dit.hcmut.edu.vn/~hungnq/courses.htm
Trang 2Mục lục
Bài tập sau đây cho phép làm quen với qui trình xây dựng 1 chương trình theo giao diện “Dialog based” bằng VC++ Dialog box của chương trình MiniChat client:
Trang 3HCMC Univ Technology – Faculty of Information Technology
Giao diện của ch.trình MiniChat client
Cửa sổ nhập thông tin của
button “Connect”
Cửa sổ nhập thông tin của
button “login”
Trang 4Giao diện của MS Visual C++ IDE
Chạy Microsoft Visual C++từ Start Programs Microsoft Visual C++
Trang 5HCMC Univ Technology – Faculty of Information Technology
Tắt/Mở nhiều cửa sổ làm việc
Trang 6Tạo new project bằng AppWizard
Dùng AppWizard để tạo
project: Chọn menu
File.New…, cửa sổ sau
được hiển thị Chọn trang
Projects, chọn mục MFC
AppWizard (exe), chọn
thư mục chứa project
trong textbox ‘Location’,
thí dụ: f:\mmtnc Nhập tên
(MiniChatClient) vào
textbox “Project name”,
như vậy các file tạo ra
project này chứa trong thư
Trang 7HCMC Univ Technology – Faculty of Information Technology
Tạo new project bằng AppWizard (tiếp)
Chọn button OK, cửa
sổ sau xuất hiện để
Trang 8Tạo new project bằng AppWizard (tiếp)
Sockets” rồi hiệu
chỉnh lại title của
Dialog box rồi chọn
“Next”
Trang 9HCMC Univ Technology – Faculty of Information Technology
Tạo new project bằng AppWizard (tiếp)
Trang 10Tạo new project bằng AppWizard (tiếp)
Trang 11HCMC Univ Technology – Faculty of Information Technology
Tạo new project bằng AppWizard (tiếp)
Chọn button Finish để tạo ứng dụng
Trang 12Tạo new project bằng AppWizard
(tiếp)
Khi tạo ứng dụng thành công thì một Dialog xuất hiện trong VC++ IDE
Trang 13HCMC Univ Technology – Faculty of Information Technology
Thiết kế giao diện ch.trình MiniChatClient
Bắt đầu thiết kế giao diện
chương trình, dùng các
controls có sẳn ở cửa sổ
Control Để xóa một
control: chọn nó rồi chọn
cut Để thêm 1 control,
dùng chuột kéo từ toolbox
và thả control vào Dialog
Để thêm hay hiệu chỉnh
thuộc tính cho control, dời
chuột tới nó rồi chọn
Properties để hiển thị cửa
sổ thuộc tính
Trang 14Thiết kế g.diện ct MiniChatClient (tiếp)
Dùng chuột drag các control vào vị trí thích hợp trên
Dialogbox
Trang 15HCMC Univ Technology – Faculty of Information Technology
Thiết kế g.diện ct MiniChatClient
(tiếp)
Để các phần tử trong Dialogbox dùng font xác định (tiếng Việt), chọn Dialogbox rồi nhấn phải chuột Cửa sổ thuộc tính sẽ được hiển thị:
Trang 16Hiệu chỉnh các thuộc tính của control
Trang 17HCMC Univ Technology – Faculty of Information Technology
Hiệu chỉnh các t.t của control
(tiếp)
Button “Connect” với tên IDC_CONNECT,
“Group” với tên IDC_GROUPREQ, “Login” với IDC_LOGIN, Button “User” với
IDC_USERREQ, “Send” với IDC_SENDMSG,
“Logout” với IDC_LOGOUT.
Text box thông báo cần gởi với IDC_MESG,
Listbox “Danh sách nhóm” với
IDC_GROUPLIST, Listbox “Danh sách các user trong nhóm” tên IDC_USERLIST, Listbox “Nội dung trao đổi với IDC_CONTENT”
Trang 18Kết hợp biến và hàm xử lý biến cố với các control
Trang 19HCMC Univ Technology – Faculty of Information Technology
Kết hợp biến và hàm xử lý biến cố với các control (tiếp)
Trang 20Kết hợp biến và hàm xử lý biến cố với các control (tiếp)
Để tạo các biến dữ
liệu kết hợp với các
control, chọn
project, class chứa
biến, trang Member
variables, sau đó
chọn từng ID phần
tử rồi ấn nút button
“Add variable”, cửa
sổ sau xuất hiện:
Trang 21HCMC Univ Technology – Faculty of Information Technology
Kết hợp biến và hàm xử lý biến cố với các control (tiếp)
Kết quả tạo 4
biến kết hợp với
4 phần tử giao
diện.
Trang 22Tạo thêm các hộp thoại từ menu Insert.Resource
Chọn menu
Insert.Resource
để tạo các hộp
thoại sau:
Trang 23HCMC Univ Technology – Faculty of Information Technology
Tạo thêm các hộp thoại từ menu Insert.Resource (2)
Khuôn mẫu 2 hộp thoại sau:
Trang 24 Quản lý các nhóm và các user của từng nhóm
Phân phối chuỗi thông tin từ một user đến các user khác.
Client:
Giao tiếp với các user
Trang 25HCMC Univ Technology – Faculty of Information Technology
Giao thức lớp ứng dụng Mini Chat
Dạng reply cho tất cả các request:
N <chuỗi dữ liệu phụ kèm theo>
N = 1: Thành công, N = 0: Thất bại
Trang 26Giao diện của c.trình
MiniChatServer
Tương tự tạo chương trình MiniChat Server như sau:
Trang 27HCMC Univ Technology – Faculty of Information Technology
A SAMPLE
Trang 28MINICHAT SERVER TRÊN VC++
Trang 29HCMC Univ Technology – Faculty of Information Technology
MINICHAT SERVER TRÊN VC++ (t.t)
// Khai bao so yeu cau ket noi dong thoi
if(listen(ser_sock,10)==SOCKET_ERROR) {
MessageBox("Khong listen duoc");
return TRUE;
}
// Khai bao nhan du lieu bat dong bo + dong cau noi bat dong bo
if ( WSAAsyncSelect(ser_sock, m_hWnd, WSA_ACCEPT, FD_ACCEPT) > 0) {
Trang 30MINICHAT SERVER TRÊN VC++ (t.t)
// Accept 1 yeu cau noi ket
// Khai bao nhan du lieu bat dong bo + dong cau noi bat dong bo
if (WSAAsyncSelect(sock, m_hWnd, WSA_RDCLOSE, FD_READ|FD_CLOSE) > 0) {MessageBox("Error on WSAAsyncSelect()");
Trang 31HCMC Univ Technology – Faculty of Information Technology
MINICHAT SERVER TRÊN VC++ (t.t)
// Doc vao request va xu ly
void CMiniChatServerDlg::Request_Process(SOCKET sock) {