您的位置:首页 > 其它

这几天来的mfc学习小结

2012-02-10 17:28 232 查看
首先,mfc中的类只能在mfc中用,而且必须有工程属性(mfc),如果想在纯c++环境下使用mfc是非常困难的。

CFile类

直接支持非缓冲,二进制的磁盘I/O服务,通过它的衍生类,其间接支持文本文件和内存文件。Mfc和CArchive结合使用可以支持mfc对象的序列化

memset

用于将内存块清零,也可以将指定内存块的前几位赋值,如:memset(buffer,’ *‘,4),即将buffer中的前四个地址赋值为’*’,也可全置空,则为memset(buffer,NULL,255),255是一假定的数字,为实际分配的内存块的大小。

关于unicode下ini文件的写入和读取

写入的时候,字符串可以直接写入,如:

::WritePrivateProfileString( _T("基本") , _T("设置背景颜色") , strColorValue , strLinkName );

strColorValue就是通过强制转换将颜色转换为CString类型,然后再写入

注:写入双引号中的内容时,如果是unicode,则必须加”_T”

关于CTime类,分别获取各种事件参数

例如:CTime tm;

strValue.Format(“%4d-%2d-%2d %2d:%2d:%2d”,tm.GetCurrentYear(),tm.GetCurrentMonth(),tm.GetCurrentDay(),tm.GetCurrentHour(),tm.GetCurrentMinute(),tm.GetCurrentSecond(),);

获得的strValue为:xxxx-xx-xx xx:xx:xx

关于创建xml文档

创建xml文件的时候,现创建一个根节点,然后再创建子节点,再向子节点中插入数据

UpdateData(TRUE);

MSXML2::IXMLDOMDocumentPtr pDoc;

MSXML2::IXMLDOMElementPtr xmlRoot;

//创建DOMDocument对象

HRESULT hr = pDoc.CreateInstance(_uuidof(MSXML2::DOMDocument40));

if (FAILED(hr))

{

MessageBox(_T("无法创建DOM文件对象,检查是否安装MS XML Parser运行库!"));

return;

}

//为DOM文件添加根节点为ROOT

xmlRoot = pDoc->createElement((_bstr_t)"ROOT") ;

pDoc->appendChild(xmlRoot);

关于获取文件后缀名

CString strType ;

strType = strLinkName.Right( strLinkName.GetLength()-strLinkName.ReverseFind('.')-1 ) ;

XML文件的保存

例如 pDoc->save(varLinkName);

strLinkName必须为variant类型的数据,CString 向 variant 类型的转换只需要一步:

_variant_t varLinkName ; //XML文件的保存函数的参数必须为variant

varLinkName = _variant_t(strLinkName);

如上述代码,先定义一个variant变量,然后强制转换即可。

8.向XML文件中插入数据(XML文件要用浏览器打开,unicode为宽字符)

例如:Coordinate->setAttribute( _T("横坐标文字对齐方式"),m_emAxisLabelAlignX ) ;

第一个参数必须为bstr类型,第二个数据必须为variant类型

注:unicode下字符串加上”_T”,如果有多个平行的子节点时,则必须子节点的名字一样,如下:

_variant_t varAxisLabelNameX ;

_variant_t varAxisLabelNameY ;

varAxisLabelNameX = _variant_t( m_strAxisLabelNameX ) ;

varAxisLabelNameY = _variant_t( m_strAxisLabelNameY ) ;

MSXML2::IXMLDOMElementPtr pCoordinate;

/*Group为平行子节点的名字(需与上下文保持一致),Name与上下文也必须一致,“坐标”是区分节点的标识*/

pCoordinate = pDoc->createElement((_bstr_t)"Group") ;

pCoordinate->setAttribute(_T("Name"),_variant_t( _T("坐标") ) ) ;

pCoordinate->setAttribute( _T("横坐标名字"),varAxisLabelNameX ) ;

pCoordinate->setAttribute( _T("纵坐标名字"),varAxisLabelNameY ) ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: