这几天来的mfc学习小结

首先,mfc中的类只能在mfc中用,而且必须有工程属性(mfc),如果想在纯c++环境下使用mfc是非常困难的。

 

  1. CFile类

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

 

  1. memset

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

 

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

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

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

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

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

 

  1. 关于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

 

  1. 关于创建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);

 

  1. 关于获取文件后缀名

CString strType ;

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

 

  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 ) ;

 

转载于:https://www.cnblogs.com/yangpengsky/archive/2012/02/10/2345726.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值