MFC有几个未公开的函数很有用,AfxExtractSubString()就是其中之一。你在MSDN文档里是找不到关于这个函数的说明的,但是你如果研究过MSDN里的例子程序的话,就会发现很多代码中都使用了这个函数。它的功能简单说来就是从某个用NULL或者换行符"\n"分割的字符串中吸取子串。
这个函数非常很有用,用它可以从串表资源中的子串,还可以从Windows控件(如标准的"File Open"对话框)中解析出特定的字符串,如多选文件名等。
在MFC的AppWizard工程中一般都要创建一个名为IDR_MAINFRAME的串资源,它包含很多有用的信息,如应用程序名、文档类型的名字,或者默认文档类型的文件扩展名--专门用于"File Open/Save"对话框。下面是一个用AfxExtractSubString()解析信息串的例子:
CString Fullstring(L"123,345,678,124,567"), str1, str4,str6;
//获取完整的分割串
AfxExtractSubString(str1, Fullstring, 0, '\n');
//析出第一个子串
AfxExtractSubString(str4, Fullstring, 3, '\n');
//析出第四个子串
AfxExtractSubString(str6, Fullstring, 5, '\n');
//析出第六个子串
结果:
Fullstring = "123,345,678,124,567"
str1=“123”
str6=“”
使用这个函数可以避免因为自己写的解析代码而可能出现的错误。