Search…

Hello MFC - Giới Thiệu và Tạo Project MFC

19/09/20203 min read
Giới thiệu về MFC và tạo project đầu tiên với MFC bằng Visual Studio.

MFC là gì?

MFC (Microsoft Foundation Classes) là một bộ thư viện của Microsoft phát triển giúp cho lập trình viên lập trình trên Window, cung cấp các class làm việc với các hàm API của Window.

Trong bài viết này sẽ hướng dẫn thiết kế một giao diện với MFC đơn giản và nhanh chóng với các control và giao diện Dialog của MFC. 

Khởi tạo project MFC

Khởi động Visual Studio: File > Project > Trong hộp thoại New Project > Templates > Visual C++ > MFC > MFC Application > Đặt tên project > OK.

ss_1

Trong hộp thoại Welcome to the MFC Application Wizard > Next.

ss_2

Trong hộp thoại Application Type > Chọn:

  1. Dialog based
  2. Trong mục Project stype chọn:  MFC standard > Next

Có thể để mặc định và chọn Next.

ss_3

Trong các hộp thoại User Interface Features và Advanced Features > Next. 

Trong hộp thoại Generated Class: Trong mục Generated classes > CUIPlateRecongnitionDlg > Finish.

ss_4

Lúc này đã khởi tạo xong một project MFC.

  • Toolbox: Nơi chứa các control để thiết kế UI như button, lable,...
  • Giao diện Dialog: Giao diện của ứng dụng. Để thêm các control vào giao diện Dialog chỉ việc chọn control trong Toolbox > kéo thả vào giao diện Dialog. Thiết kế sao cho phù hợp với mục đích thiết kế.
  • Solution Explorer
ss_5

Các xử lý cơ bản

Thiếp lập chế độ Build

Trong MFC, project có thể được Build ở một trong hai chế độ là Unicode và Multi-byte.

Nhấn chuột phải vào Solution Explorer > Properties:

Trong hộp thoại Properties > Mục Configuration Properties > General:

Trong hộp thoại General > Character Set > User Unicode Charater Set Hoặc User Multi-byte Charater Set > OK.

ss_6

Chuyển đổi dữ liệu

Các kiểu dữ liệu trong MFC cơ bản tương tự giống trong C/C++. Nhưng đôi khi cần phải chuyển đổi các kiểu dữ liệu để có thể thao tác với các control.

string-CString

// Chuyển kiểu dữ liệu string sang CString.
std::string stringExample = "Hello Stdio.vn";

CString cStringExample = stringExample.c_str(); 

CStringW cWStringExample = (CStringW)(str.stringExample); 
//*********************************************************************

// Chuyển kiểu dữ liệu CString sang string.
Cstring cStringExample = "Hello Stdio.vn";
std::string stringExample = std::string(cStringExample); 

Cstring cStringExample = _T("Hello Stdio.vn");
std::wstring wStringExample = (std::wstring)cStringExample;
std::string stringExample;
string_Example.assign(wStringExample.begin(), wStringExample.end()); 
//*********************************************************************

Phân tích

  • Dòng 2: Khởi tạo một biến kiểu string có tên là stringExample.
  • Dòng 4: Chuyển kiểu dữ liệu từ string sang CString với chế độ Build Multi-type.
  • Dòng 6: Chuyển kiểu dữ liệu từ string sang CString với chế độ Build Unicode.
  • Dòng 10-11: Chuyển kiểu dữ liệu từ CString sang string với chế độ Build Multi-type.
  • Dòng 13-16: Chuyển kiểu dữ liệu từ CString sang string với chế độ Build Unicode.

int(float, double,...)-CString

#define MAX_WORD 24
char cTmp[MAX_WORD];
int numberInt = 24;
float numberFloat = 24.12;

sprinf(cTmp, "%d", numberInt); // sprinf_s(cTmp, "%d", numberInt); 
sprinf(cTmp, "%f", numberFloat); // sprinf_s(cTmp, "%f", numberFloat);

// Chế độ Multi-byte
CString cStringExample = cTmp;

// Chế độ Unicode
CString cStringExample;
cStringExample.Format(_T("%d"), number);

//**************************************************************

CString cStringExampleInt = "24";
CString cStringExampleFloat = "24.12";

// Chế độ Multi-byte
int numberInt = atoi(cStringExampleInt);
float numberFloat = atof(cStringExampleFloat);

// Chế độ Unicode
int numberInt = _watoi(cStringExampleInt);
float numberFloat = _watof(cStringExampleFloat); 

Phân tích 

  • Dòng 2-4: Định nghĩa và khởi tạo.
  • Dòng 6-4: Chuyển kiểu dữ liệu int, float thành kiểu CString với hai chế độ Multi-type và Unicode.
  • Dòng 6-14: Chuyển kiểu dữ liệu CString thành kiểu int, float với hai chế độ Multi-type và Unicode.

Bài chung series

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024