如何将CPoint对象转换为字符串?

时间:2012-12-18 14:53:12

标签: c++ mfc type-conversion

我有一个std::array个CPoint对象,我想在mfc应用程序中输出:

std::array<CPoint,11> v = pDoc->m_ElementList.back();

    for(int j=0;   j < v.size();  j++ )
        aDC.TextOutW(x+=3,y+=3, _T(v[n++]));   

现在_T(v[n++])显然不起作用,因为它是一个CPoint对象,而不是一个字符串。如何以这种方式输出CPoint对象?或者我如何将它们转换为字符串以便以这种方式使用它们?

2 个答案:

答案 0 :(得分:4)

CString s;
CPoint p;

s.Format("x=%d / y=%d",p.x,p.y);

对于std :: string,请使用sprintfstd::stringstream

stringstream ss;
ss << "x=" << p.x << "/" << "y=" << "p.y";

答案 1 :(得分:0)

我不知道CPoint是或可以做什么,但我认为你必须写下这样的话:

std::wstring to_wstring(const CPoint& point)
{
  #ifdef HAS_CPP11
  using std::to_wstring;
  return to_wstring(point.x) + L"; " + to_wstring(point.y);
  #else
  std::wstringstream s;
  s << point.x << L"; " << point.y;
  return s.str();
  #endif
}

std::string to_string(const CPoint& point)
{
  /*..*/
}