1

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

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 对象?或者我怎样才能将它们转换成字符串以这样的方式使用它们?

4

2 回答 2

4
CString s;
CPoint p;

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

对于 std::string 使用sprintf或者std::stringstream.

stringstream ss;
ss << "x=" << p.x << "/" << "y=" << "p.y";
于 2012-12-18T14:55:51.400 回答
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)
{
  /*..*/
}
于 2012-12-18T14:56:11.683 回答