1. Trang chủ
  2. » Công Nghệ Thông Tin

Chuyên đề lập trình trực quan trên môi trường Visual C++ 6.0

35 3K 16
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chuyên Đề Lập Trình Trực Quan Trên Môi Trường Visual C++ 6.0
Trường học Standard format not all caps
Chuyên ngành Standard format not all caps
Thể loại Standard format not all caps
Năm xuất bản Standard format not all caps
Thành phố Standard format not all caps
Định dạng
Số trang 35
Dung lượng 0,91 MB

Nội dung

Chuyên đề lập trình trực quan trên môi trường Visual C++ 6.0

Trang 1

Web tham khảo: www.codeproject.org

Nội dung Chuyên đề lập trình trực quan trên môi trường Visual C++ 6.0

1 Giới thiệu môi trường và hướng dẫn cài đặt Visual C++6.0

- Quá trình phát triển dòng ngôn ngữ lập trình Visual C++ 6:

C chuẩn trong DOS (ngôn ngữ cấu trúc – hàm – chức năng) => C ++ (lai – hướng đối tượng: chứa khái niệm lớp) => C++ trên windows => Visual C ++ 5,6,7,8.

- Mục đích, ý nghĩa bộ công cụ lập trình trực quan Visual C++6: như tên gọi của nó, VC 6 hỗ trợ cao nhất cho người dùng phát triển các ứng dụng Desktop.

Phân biệt: website, trình duyệt, google…

- Bộ cài: sử dụng bộ cài Visual Studio 6.0 hoặc Visual C++ 6.0

- Tài liệu tiếng Việt: Tự học Visual C++ 6.0 trong 21 ngày.

2 Bài tập lớn và thi hết học phần:

- Kết hợp làm bài tập lớn hai môn: lập trình trực quan và giấu tin trong ảnh

- Dùng bài tập lớn để lấy điểm học trình ( 3 điểm học trình)

- Phát triển bài tập lớn thành thi hết học phần: thi vấn đáp

- Nội dung bài tập lớn:

o Xây dựng một chương trình nhỏ: ví dụ tính lương, bán sách, nhập hàng trên cơ sở một ứng dụng hội thoại.

o Dịch một hoặc hai chương trong giáo trình Lập trình trực quan và trình bày nội dung dịch.

o Dùng visual C xây dựng một ứng dụng giấu tin trong ảnh đơn giản/ hệ chuyên gia/ trí tuệ nhân tạo/ lý thuyết mật mã và an toan dữ liệu/

Win-form

Nux-form

Ứng dụng Desktop

Web-base: Dùng giao thứcc http trên cổng

80, sử dụng trình duyệt mặc định là Web Browser: IE, FireFox, Chrome (google)

Netcafe, Chat – Messenger, TeamViewer,

Ví dụ: ứng dụng winform? Office sf

Trang 2

3 Đặc điểm của ngôn ngữ lập trình VC++ trên windows:

3.1Giới thiệu về các hàm API: appliction programming interface

3.2 Giới thiệu về MFC – MFC là gì ?

- Microsoft Foundation Class

- Là một thư viện các lớp (class) trong ngôn ngữ Visual C++, dùng cho việc lập trình

trên Windows MFC thích hợp cho các ngôn ngữ hướng đối tượng.

- Được xây dựng trên cơ sở các hàm thư viện API của Windows API thích hợp cho

các ngôn ngữ hướng thủ tục: Visual Basic, C chuẩn.

- Version 6 có khoảng 200 class

- Giúp cho người lập trình có thể xây dựng ứng dụng nhanh và ít tốn công sức hơn so

với việc sử dụng đơn thuần các hàm thư viện API của Windows

- Ta vẫn có thể gọi các hàm Windows API trong MFC

He hanh

- cac dich vu cua HDH

- tai nguyen

API

- tap cac ham

- MFC

Lap trinh vien

Visual C++ MFC

Trang 3

The Windows API is object-based This means that you can programmatically interact with the system objects

(such as windows, semaphores, and pens) through a handle and a defined interface The actual implementation and data used by the implementation is hidden from the view of the program This “data hiding” is called

encapsulation.

The MFC Class Libraries are object-oriented This means that in addition to the encapsulation, the interfaces (packaged in a set of C++ classes) also provide inheritance and polymorphism Inheritance is the capability to share and extend the functionality of an existing class Polymorphism is the capability of objects to support the

same interface, but provide different implementations.

Gptbh(int a,int b,int c)

Gptbh(complexint a, complexint b, complexint c)

Note: Although the Windows API is procedural and designed to be called from procedural languages (like C), you can (and will) use the Windows API directly from your MFC applications written in C++

3.2 Giới thiệu về sự kiện và xử lý sự kiện:

Khái niệm sự kiện: là một hành động liên quan đến một đối tượng do hệ điều hành quản lý (vd: chuột, bàn phím) được thực hiện bởi tác nhân là người dùng hoặc ngay chính một tiến trình nào

Trang 4

3.3 Nhắc lại một số câu lệnh cơ bản trong C được giữ nguyên trong VC6

Các kiểu dữ liệu cơ sở: int, char, long, double.

Cách khai báo biến: int x; long a[100];

Phép AND: dùng hai ký tự: “ && ”

Phép OR: dùng ký tự: “ || ”

Phép tăng giá trị lên một đơn vị: ++ ten_bien; ++x;//x=x+1 a=b+c;//register:

Phép giảm giá trị xuống 1 đơn vị: ten_bien; x;

Phép gán: sử dụng một dấu bằng (“ = ”) để thực hiện phép gán Vd: int a=4; a = b;

}

int i=0;

while(i<100) {

sdsdsdsd

++i;

} i=100;

Chú ý:

o Mọi câu lệnh trong VC, C đều phải có dấu chấm phẩy ở cuối lệnh

o Chỉ riêng các lệnh cơ bản trong C như: if, for, while đều viết thường.

o Mọi kiểu biến cơ sở về kiểu dữ liệu số như: số nguyên (int), số thực (double), ký tự (char) đều viết thường

o

o Mọi hàm còn lại trong VC đều viết hoa chữ cái đầu

o Mọi câu lệnh, chuỗi, tên biến, giá trị biến trong VC không chứa ký tự Việt Do đó, khi lập trình, nên tắt hết các chế độ gõ văn bản tiếng việt.

o Mảng, chuỗi hay xâu ký tự trong C, VC đều đánh chỉ số bắt đầu từ 0.

4 Tạo một dự án (project mới)

Giới thiệu: toolbar, một số nút chức năng quan trọng: biên dịch, chạy.

- Giới thiệu các cách tạo ứng dụng: document, dialog,

- Giới thiệu thanh điều khiển, môi trường form

- Thực hành

4.1 Tạo một ứng dụng hội thoại Dialog

Các bước để tạo một ứng dụng hội thoại

Bước 1:

Trang 5

Bước 2:

Các bước tiếp theo: bấm Next hoặc OK

- Giới thiệu vùng tài nguyên các điều khiển: nguyên tắc sử dụng một điều khiển bất kỳ của VC:

o Kéo điều khiển đó vào Form (bấm và giữ phím trái chuột, kéo rê điều khiển từ bảng điều khiển vào Form)

o Đặt tên ID cho điều khiển: sau khi kéo điều khiển vào Form, bấm phải chuột vào điều khiển, chọn Properties Ở tab đầu tiên (General), hãy gõ tên ID mới cho điều khiển vào mục ID Có thể giữ nguyên tên ID mặc định của điều khiển.

o Thêm biến gắn với điều khiển: vào View => ClassWizard => Chọn Tab: Member Variables Chọn tên ID của điều khiển và bấm nút Add Variable.

o Dùng biến đã thêm ở trên để gọi các hàm của điều khiển.

- Dịch và chạy thử.

- Giới thiệu hàm: BOOL CT1Dlg::OnInitDialog()

- Mặc định, hệ thống tạo sẵn hàm OnInitDialog() Hàm này được gọi đầu tiên trước khi Form hội thoại xuất hiện.

MessageBox(“noi dung thong bao nam day”);

4.2 Cách sử dụng nút bấm

- Cách đưa một nút bấm vào Form

- Đặt tên cho nút bấm,

Trang 6

- đặt ID cho nút bấm

- Cách kích hoạt sự kiện cho nút bấm: 2 cách : bấm đúp chuột, dùng trình trợ giúp Wizward.

- Các sự kiện gắn với nút bấm: chỉ cần quan tâm một sự kiện: Click

- Xem hàm xử lý sự kiện nút bấm

- Dịch và chạy thử sự kiện này: cho hiện thông báo khi Click chuột vào nút.

- Hàm đầu tiên cần nhớ về VC6: Hiển thị một thông báo ra màn hình.

MessageBox(“Xau can hien thi”);

4.3 Cách sử dụng điều khiển Textbox

a Đối tượng chuỗi trong VC6: CString.

Khai báo 1 biến chuỗi tên là s: CString s,ss,s1,s2;

Khởi tạo giá trị ban đầu cho s: s = “DH Tin K1”;s=ss;

o Hàm truy cập vào ký tự thứ i trong chuỗi: dùng phép toán: s[i]

o Hàm gán một ký tự mới vào một vị trí bất kỳ trong chuỗi:

s.SetAt(chiso_can_gan, ky_tu_can_gan);

vd: s = “DHTin K1” Ta muốn thay ký tự ở vị trí 2 bằng ‘ A ’.

s.SetAt(2,’A’); => s = “DH A K1”

o Hàm lấy độ dài chuỗi: int n = s.GetLength();

o Đổi một chuỗi sang toàn các ký tự hoa: s.MakeUpper();

o Đổi một chuỗi sang toàn các ký tự thường: s.MakeLower();

o Hàm tìm kiếm một xâu con trong chuỗi: CString

int i = s.Find(xau_can_tim, vi_tri_bat_dau_tim);

int i = s.Find(“anh”, 0);

Hàm Find nhận vào hai đối như trên, hàm trả về chỉ số đầu tiên của xau_can_tim trong chuỗi s Nếu không tìm thấy, hàm Find trả về giá trị -1.

o Hàm tìm kiếm một ký tự trong chuỗi:

int i = s.Find(Kytu_can_tim, vi_tri_bat_dau_tim);

Trang 7

Hàm Find nhận vào hai đối như trên, hàm trả về chỉ số đầu tiên của kytu_can_tim trong chuỗi s Nếu không tìm thấy, hàm Find trả về giá trị -1;

o Xóa một, hoặc một số ký tự liên tiếp trong chuỗi:

s.Delete(vi_tri_xoa, xoa_bao_nhieu_kytu);

vd: s = “Lop DHTanh in K1 ”; Ta muốn xóa các ký tự từ vị trí thứ 3 đến vị trí 6 =>

Số ký tự xóa = 6-3=3; Gọi hàm: s.Delete(3,3); => s=” Lopin K1”

o Hàm xóa bỏ mọi ký tự trắng thừa ở đầu chuỗi: s.TrimLeft();

o Hàm xóa bỏ mọi ký tự trắng thừa ở cuối chuỗi: s.TrimRight();

o S.trim();

o Hàm chèn thêm một chuỗi con vào một vị trí bất kỳ trong chuỗi s.

s.Insert(vitri_can_chen, xau_con_can_chen);

vd: s = “Lop DHTin K1”; CString ss = “abc”; s.Insert(5,”abc”);

=>s = “Lop D abc HTin K1”

o Hàm copy một chuỗi con từ chuỗi s ban đầu:

CString ss;

ss = s.Mid(vitri_dautien_can_copy, soluong_kyty_can_copy);

VD: s = “Lop DHT in K1”;

Ta cần copy chuỗi con DHT trong s ra chuỗi mới ss => Làm như sau:

CString ss; //Khai báo một biến mới chứa chuỗi con

ss = s.Mid(3,3);

o Hàm định dạng dữ liệu đưa ra màn hình: Bạn muốn hiển thị một thông báo ra màn hình có chứa số liệu để kiểm tra, ta sẽ dùng hàm Format của đối tượng chuỗi như sau:

CString s;

int m=5; s.Format(“Gia tri = %d”,m); MessageBox(s);

printf(“So in ra la %d”,m);

b Cách tạo và sử dụng điều khiển textbox

- Cách đưa một điều khiển textbox vào Form

Trang 8

- Đặt tên ID cho điều khiển textbox: bấm phải chuột vào điều khiển textbox, chọn

Properties => Đặt lại tên ID cho textbox trong hộp ID.

- Chú ý một số thuộc tính quan trọng của điều khiển textbox trong tab: Styles:

- Các sự kiện gắn với điều khiển Textbox: không cần quan tâm.

- Khai báo một biến để chứa dữ liệu của điều khiển textbox:

o Vào View=> ClassWizard => Bấm sang Tab thứ 2 (member variables) => Bấm chuột vào ID của điều khiển textbox mà bạn vừa đặt tên ở bước trước Sau đó, chọn Add Variables.

Trang 9

o Hiện lên cửa số mới như sau:

- Các hàm cần thiết phải nhớ về điều khiển textbox:

o Lấy dữ liệu từ điều khiển TextBox: Dùng lệnh UpdateData(1) như sau:

UpdateData(1);

Sau câu lệnh này, biến gắn với điều khiển textbox mà bạn vừa tạo ở trên đã chứa dữ liệu trên ô TextBox Bạn có thể thao tác với biến này Ví dụ: Hiển thị nội dung dữ liệu trên textbox: MessageBox(m_hoten);

o Đưa dữ liệu lên điều khiển TextBox: Theo các bước sau:

Khởi tạo dữ liệu cho biến gắn với Textbox:

vd: m_hoten = “Nguyen Van Nam”;

Gọi lệnh: UpdateData(0);

- Dịch và chạy thử

4.4 Điều khiển nhãn (Static control)

- Dùng để ghi tên (nhãn) bên cạnh các mục của giao diện

- Cách sử dụng: kéo điều khiển nhãn (biểu tượng “Aa”) từ bảng các điều khiển vào trong Form.

- Bấm phải chuột vào điều khiển, chọn Properties Sau đó gõ tên nhãn mình cần vào mục: Caption.

Trang 10

User có thể nhập Text Last name:

Make Full User ko thể sửa nội dung ô này Fullname:

Yêu cầu 1: Khi nhập xong First name, Last name Bấm nút Make Full sẽ hiện tên đầy đủ vào TextBox full name

Chuẩn hóa xâu nhập: xóa các ký tự trắng thừa

ở cuối và đầu, giữa hai từ chỉ để lại 1 ký tự trắng, bắt đầu mỗi từ phải viết hoa.

Trang 11

d Xây dựng ứng dụng sau: (để biết mã ký tự ‘0’, vào Character Map)

for(i=0;i<n;++i) {

if(i==0 && s[i] >= 97)s.SetAt(i, s[i] - 32);

else if(s[i]== ' ' && s[i+1] >= 97)s.SetAt(i+1, s[i+1] - 32); }

m_s2 = s;

UpdateData(0);

}

4.5 Điều khiển danh sách ComboBox, ListBox, simple list

- Kéo điều khiển ComboBox vào Form

- Đặt tên cho điều khiển: ví dụ: IDC_COMBO1

- Thiết lập một số thuộc tính cho điều khiển:

- Owner draw: xác định lập trình viên có muốn viết đè hàm vẽ từng item trên điều khiển hay không Giá trị mặc định là No, nghĩa là ứng dụng VC tự vẽ và render từng item trong điều khiển Khi ta muốn viết hàm vẽ tùy biến cho từng item (ví dụ vẽ thêm ảnh hoặc icon bên cạnh text cho tưng item) Thì ta phải thiết lập thuộc tính owner draw Có hai chế độ: fixed: mỗi item có chiều cao như nhau và động

(varible) Một khi đã chọn chế độ owner draw, bắt buộc lập trình viên phải khai báo hàm đè DrawItem của điều khiển để thêm các mã tùy biến cho việc vẽ thêm icon bên cạnh text.

- Khai báo biến gắn với điều khiển: Vào View=>ClassWizard:

Trang 12

- Thêm dữ liệu vào danh sách:

for(int i=0;i<10;++i)

m_combo AddString ("DHTin K1");

- Các sự kiện cần quan tâm của điều khiển Danh sách: sự kiện khi người dùng chọn một mục nào đó trong danh sách (CBN_SELCHANGE) Vào View=> ClassWizard và làm theo trình tự 4 bước sau đây:

Trang 13

- Bây giờ, mỗi khi người dùng chọn một mục trong danh sách, hàm có tên ở trên (OnSelchangeCombo1) sẽ được gọi.

- Hàm lấy chỉ số mục đang được chọn hiện tại:

- Hàm thiết lập một mục nào đó được chọn: m_combo.SetCurSel(id);

MỘT SỐ HÀM NÂNG CAO CỦA COMBOBOX:

- SetEditSel(int start, int end): select nội dung text có trên ô EditBox bắt đầu từ vị trí start đến vị trí end.

- SelectString (int startafter, string s): tìm kiếm và đối xánh xâu s với các item có trong comboBox, nếu tìm thấy sẽ thực hiện select item đó và đưa item đó lên hộp EditBox Tham

số startafter = -1: mang nghĩa tìm kiếm trên toàn bộ hộp ComboBox.

- ShowDropDown(): hiển thị dropdown cho ComboBox

- GetWindowText(CString &s): trả về nội dung text trên hộp EditBox

- SetWindowText(CString s); gán nội dung text lên hộp editbox

Một số sự kiện đáng chú ý:

- OneditChange();

- OnDropDown():

- OnSelChange();

Trang 14

int N; //Tong so item co trong danh sach ban dau

bool m_bAutoComplete; //xu ly khi user bam BackSpace hoac Delete

int realLength; //do dai thuc su cua noi dung tren EditBox do user nhap vao

// TODO: Add extra initialization here

cbBox.AddString("Pham The Anh");

cbBox.AddString("Le Dinh Danh");

cbBox.AddString("Nguyen Kha Tho");

cbBox.AddString("Tran Doan Minh");

cbBox.AddString("Le Duc Tho");

cbBox.AddString("Nguyen Viet Nam");

cbBox.AddString("Phan Huy Minh");

cbBox.AddString("Nguyen The Ngoc");

cbBox.AddString("Do Van Hoa");

cbBox.AddString("Nguyen Minh Phuong");

Trang 15

/* Neu m_bAutoComplete == false => user bam BackSpace , Delete => Khong

nhay vao khoi lenh nay Vi thuc hien khoi lenh nay, khi user bam delete, backspace xong, noi dung tren EditBox van matching voi item dau tien, sau do lai vao doan lenh nay => lai cho hien thi item 0 vao editbox => ket qua:ko the xoa duoc ky tu

Trang 16

// cbBox.ShowDropDown();

/* Giai thich su kien: "ComboxBox dang duoc active, sau do nguoi dung bam mot phim bat ky"

=> comboBox lam 2 viec:

1 Hien thi danh sach (show dropdown)

2 Tim kiem ky tu vua nhap vao trong EditBox voi cac item trong danh sach va:

2.1 Neu tim thay, select item chua ki tu do va cho hien thi item do len EditBox => Mac dinh, ComboBox se select toan bo chuoi ky tu trong EditBox.

KKL muon cai tien de ComboBox chi select N-1 ky tu cuoi ma khong select ky tu dau tien => Meo: luc dau, KKL dat cau lenh cbBox.ShowDropDown() o cuoi ham Xuly(), mang

y nghia: Khi da xu ly xong het cong viec moi cho hien thi Nhung nhu the khong hay, neu ta cho hien thi dropdown ngay tu dau => se khong anh huong gi den viec xu ly, ma lai khac phuc duoc hien tuong 1,2 o tren Vay, dua lenh cbBox.ShowDropDown() len dau ham Xuly();

2.2 Neu khong tim thay, khong hien thi cai gi len EditBox (nhung van lam viec 1 giu nguyen ho danh sach).

-Notes: neu hien tai trang thai cua comboBox dang la dropdown thi comboxBox khong lam cac buoc 1,2 o tren Cac buoc 1,2 o tren chi muc dich: hien thi dropdown khi lan dau tien nguoi dung bam mot phim bat ky.

int nVirtKey = (int) pMsg->wParam;

if (nVirtKey == VK_DELETE || nVirtKey == VK_BACK)

Trang 17

// Hien thi lai toan bo danh sach trong ComboBox

// Viec lam nay se tao ra mot hieu ung thuan loi khac cho ta

// do la: neu trong ds chi co 2 item doi sanh voi text trong editbox

// thi chieu rong cua ComboBox cung van la chieu rong mac dinh do ta thiet lap ban dau

InitData();

//select item dang nam tren EditBox cua ComboBox

if(s!="")cbBox.SelectString(-1,s);//Ham nay tim kiem va select item tim thay vao EditBox, Tham so -1: tim tren toan bo noi dung ComboBox

4.6 Thanh tiến trình: (progress)

- Kéo rê điều khiển tiến trình vào Form, xem hình sau:

- Đặt tên ID cho điều khiển: bấm phải chuột vào điều khiển, đặt tên mong muốn vào mục ID Nếu không cần thiết thì giữ nguyên tên mặc định là: IDC_PROGRESS1.

Ngày đăng: 18/08/2012, 11:46

HÌNH ẢNH LIÊN QUAN

Hình của Form. - Chuyên đề lập trình trực quan trên môi trường Visual C++ 6.0
Hình c ủa Form (Trang 25)

TỪ KHÓA LIÊN QUAN

w