
用EnumFontFamiliesEx函数就可以了,示例如下:
LOGFONT lf;ZeroMemory(&lf,sizeof(LOGFONT));
lflfCharSet = DEFAULT_CHARSET;
_tcscpy(lflfFaceName,TEXT(""));
EnumFontFamiliesEx(pDC->GetSafeHdc(),&lf,(FONTENUMPROC)EnumFontFamiliesProc,(LPARAM)this,0);BOOL CALLBACK CFontCombo::EnumFontFamiliesProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lParam)
{
if(!(nFontType & RASTER_FONTTYPE))
{
// if (lpelf->elfLogFontlfCharSet == ANSI_CHARSET || lpelf->elfLogFontlfCharSet == GB2312_CHARSET)
{
CFontCombo pCombo = (CFontCombo )lParam;
//过滤以@开头的字体,过滤已经添加的字体。
if(lpelf->elfFullName[0] != TEXT('@') && pCombo->FindStringExact(0,(LPCTSTR)lpelf->elfFullName) == LB_ERR)
{
int index = ((CFontCombo )lParam)->AddString((LPCTSTR)lpelf->elfFullName);
LPLOGFONT lpLF = new LOGFONT;
CopyMemory(lpLF,lpelf,sizeof(LOGFONT));
((CFontCombo )lParam)->SetItemData(index,(DWORD)lpLF);
}
}
}
return TRUE;
}
从后往前查找最后一个路径分隔符的索引 ,然后截取字符串
CString str = _T("C:\\WINDOWS\\SYSTEM32\\123EXE");
int nPos = strReverseFind (_T('\\'));
str = strLeft(nPos+1);
在数据库中获取文件路径,一般使用ADO或者ODBC的方式,这个没有具体情况没法细说。
点击按钮打开文件,在按钮响应函数中,使用ShellExecute函数完成即可(还有WinExec和CreateProcess等也可以)
ShellExecute(NULL,"open","获取到的文件绝对路径名",NULL,NULL,SW_SHOWNORMAL);已经获取了CString类型的文件路径,一般推荐使用CFile或者CStdioFile进行文件 *** 作。
fread也是可以的,打开的文件名参数使用cstringGetBuffer(0)就可以了,不过注意工程最好不要是UNICODE模式,这种模式下fread会有一些麻烦。
CFileFind finder;
if(finderIsDirectory() && !finderIsDots())
{
// 是子文件夹,递归调用本函数
}
else
{
finderGetFilePath(); // 获取文件的完整路径
finderGetFileName(); // 获取文件名,包括扩展名
}
最近刚刚接触到RobotFramework,发现这个工具倒是可以满足我的要求,而且可以结合seleniumLibrary,用来做web的自动化测试相当不错。之前我也接触过selenium,不过感觉那个工具更贴近开发人员使用,有了robotFramework之后,感觉这个工具相当强大,而且是贴近测试人员的。之所以说强大,主要是这些测试脚本都可以用文本格式保存(如txt/html等)
==安装篇==
如果有想学的朋友可以自己下载以下文件安装(Google-code里可以找到大部分的安装文件):
这篇文章的内容比较旧了,最新的安装指南请查看 更新篇
python-271msi(首先要有python,请选择将Python加入Path)
wxPython28-win32-unicode-28110-py27exe(wxPython,必须要的)
robotframework-260win32exe(然后装robot的Framework)
robotframework-ride-0381win32exe(robotFramework的IDE,很不错)
robotframework-seleniumlibrary-28win32exe(seleniumLibrary)
安装成功后
执行[PythonDir]\Scripts\ridepy
看到界面就是安装成功了。
如果需要AutoIt支持就下载下面2个东东。
AutoItLibrary-11
pywin32-216win32-py27exe
==入门篇==
安装完成了,这个框架可以说是基于keyword的 *** 作,按F5可以看到所有加载的keyword。
首先新增一个project
然后新增suite
然后新增test case,接着在suite层级add library,把selenium library加进来,添加后按F5检验是否添加成功,如图
OK,继续在suite的setting里设置suite启动和结束的keyword,即Start Selenium Server和Stop Selenium Server,他会在运行时帮助我们自动启动seleniumserver。
接下来在test case里添加一个步骤,open browser(一般用selenium做web测试都要用这个方法来打开浏览器),添加后关键字变成蓝色表示找到关键字了,否则可能是拼写错误或者没有加载相应的library。红色表示有一个必选参数要给定输入值,具体参数可以看F5里的keyword说明。
输入参数,第二个参数默认是firefox,不过我没装,就用ie吧。
以上只是一个简单的例子,没有详细说明每个步骤的 *** 作,只是初步介绍。后续再详细介绍
这个是删除文件的用法,找到文件和删除文件都差不多。用CFileFinder可以遍历。 void DelFiles(CString& strDirPath, CString strFileName, BOOL bDelAll) { CFileFind FileFinder; strDirPath = strDirPath + _T("\\"); CString strFilePath
MFC将单个数据写文件:
[cpp] view plain copy
CStudent st;//假设有学生类,其构造函数会初始化三个成员变量m_stuID、m_stuID、m_stuScore
m_stuID = this->m_stuID;//this->m_stuID是窗体类中的成员
m_stuName = this->m_stuName;
m_stuScore = this->m_stuScore;
CFile file;
//=======================写=======================
fileOpen(_T("E:\\studentdata"),CFile::modeCreate|CFile::modeReadWrite);//打开/创建文件,打开后对其进行读写
CArchive ar(&file,CArchive::Mode::store);//这个包有两个方向(存储和读取),这里用文件进行存储
arWriteObject(&st);//把地址给他,它会自己写
//======================================================
arClose();
fileClose();
以上就是关于mfc如何获取系统字体文件路径全部的内容,包括:mfc如何获取系统字体文件路径、MFC 如何从CString中获取文件目录、MFC得到数据库中文件绝对路径,然后点击按钮在电脑上打开此文件,这个怎么实现啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)