📅  最后修改于: 2023-12-03 15:02:56.270000             🧑  作者: Mango
MFC(Microsoft Foundation Classes)是一个面向对象的C++类库,它是微软公司开发的一种编程工具,旨在简化 Windows 对话框、控制和消息、GDI、网络、多线程以及其他 Windows 应用程序中常用的复杂代码任务的编写,该类库提供了控件、MessageBox、Menu等一些接口,MFC支持向导式应用程序,它可以方便地实现多文档界面、视图和文档的框架结构。
在MFC中字符串的处理方法相比于C++有所不同。MFC涉及两种类型的字符串:
CString类是MFC字符串类之一。它是MFC的一个常用类,在MFC应用程序中替代了STL的string类,其定义在afx.h头文件中,具有以下特点:
+
和 +=
来处理字符串。以下是使用CString的示例代码片段:
#include <afx.h>
int main()
{
CString str(L"Hello,world!");
CString str1 = _T("A string with TCHAR");
CString str2("A string with char");
CString str3 = str2;
CString str4 = str1 + L" and " + str2 + _T(" mixed");
str4 += CString(L" and newer with unicode support");
str4.AppendFormat(_T(" (size: %d bytes)"), str4.GetLength());
wchar_t buffer[50];
swprintf(buffer, 50, L"The length is %d characters", str4.GetLength());
return 0;
}
MFC提供了一种类似于C++中STL string字符串的概念:字符串集CSTLR。CSTLR是由CString组成的set,定义在afxstr.h中,通过CSTLR可以方便地去除字符串表中的重复项。以下是使用MFC字符串集的示例代码片段:
#include <afxstr.h>
#include <set>
#include <iostream>
int main()
{
std::set<CString> stringSet;
stringSet.insert(_T("String 1"));
stringSet.insert(_T("String 2"));
stringSet.insert(_T("String 3"));
stringSet.insert(_T("String 4"));
stringSet.insert(_T("String 4")); // Adding duplicate string. It will only add one.
std::cout << _T("The size of set is: ") << stringSet.size() << std::endl;
return 0;
}
通过以上介绍,相信你已经对MFC字符串有着更深入的了解了。