代码如下:
struct Point
{int x;int y;
}; //头文件里定义的结构体
void CCalibrationDlg::OnCalibration()
{ CString TextX;
CString TextY; const int nItemsX = m_ListBox4.GetCount();
const int nItemsY = m_ListBox5.GetCount();
CArray <Point,Point> Array;
Point pt;
for (int i = 0; i < nItemsX; i++ )
{
m_ListBox4.GetText(i, TextX);
m_ListBox5.GetText(i, TextY);
pt.x = ::atoi(TextX);
pt.y = ::atoi(TextY);
Array.Add(pt); // 插入数组 }
}这样已经把两个分别存放 X Y 坐标的listbox控件中的数值存到了 Array中
我想问一下 X Y 的值在 Array中式如何分布的?能帮我解释下 CArray <Point,Point> Array 中两个Point分别什么意思吗? 我电脑里没有MSDN···再请教一下 我该如何检验 Array中数值的正确性?谢谢!!
struct Point
{int x;int y;
}; //头文件里定义的结构体
void CCalibrationDlg::OnCalibration()
{ CString TextX;
CString TextY; const int nItemsX = m_ListBox4.GetCount();
const int nItemsY = m_ListBox5.GetCount();
CArray <Point,Point> Array;
Point pt;
for (int i = 0; i < nItemsX; i++ )
{
m_ListBox4.GetText(i, TextX);
m_ListBox5.GetText(i, TextY);
pt.x = ::atoi(TextX);
pt.y = ::atoi(TextY);
Array.Add(pt); // 插入数组 }
}这样已经把两个分别存放 X Y 坐标的listbox控件中的数值存到了 Array中
我想问一下 X Y 的值在 Array中式如何分布的?能帮我解释下 CArray <Point,Point> Array 中两个Point分别什么意思吗? 我电脑里没有MSDN···再请教一下 我该如何检验 Array中数值的正确性?谢谢!!
第一个是类型,表示是Point,第二个是存储的方式,像你这种方式CArray 会复制一份,如果用CArray <Point,&Point> Array,那么你添加到 CArray的对象的作用域要跟CArray的一致,
恩谢谢!你的意思是:
CArray <CPoint,CPoint> Array;
CPoint pt;
for (int i = 0; i < nItemsX; i++ )
{
m_ListBox4.GetText(i, TextX);
m_ListBox5.GetText(i, TextY);
pt.x = ::atoi(TextX);
pt.y = ::atoi(TextY);
Array.Add(pt); // 插入数组 }
恩 我这些天才接触MFC VC 但是这个任务比较紧 就看一点写一点 很乱多亏CSDN的大侠们帮忙!那 我这里是把 我要的 X Y 坐标都存到 Array中了吗?
他们是怎么分布的啊?其中的X Y 的值是整型吗?
谢谢
CPoint pt;
for (int i = 0; i < nItemsX; i++ )
{
m_ListBox4.GetText(i, TextX);
m_ListBox5.GetText(i, TextY);
pt.x = ::atoi(TextX);
pt.y = ::atoi(TextY);
Array.Add(pt); // 插入数组 }
/////////////////////////我想取出Array中的元素进行检查 是否正确
CString k;
int t=ArrayX.GetAt(0);
k.Format("%d",t);
AfxMessageBox(k); }error C2440: 'initializing' : cannot convert from 'class CPoint' to 'int'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Error executing cl.exe.Calibration.exe - 1 error(s), 0 warning(s)
还请大家帮忙那!我想知道Array中 我需要的 X Y 的排列方法!还有如何取出坐标值进行检查 是否正确
int t=ArrayX.GetAt(0); 改成 CPoint = ArrayX.GetAt(0);
CString k;
int t=ArrayX.GetAt(2).x;
k.Format("%d",t);
AfxMessageBox(k);int t=ArrayX.GetAt(0); 改成int t=ArrayX.GetAt(0).x;
就能通过运行了 只是 显示的值永远是 0
CArray <CPoint, CPoint> Array;
CPoint p;
p = CPoint(34, 2);
Array.Add(p); CPoint p1 = Array.GetAt(0);
CString str;
str.Format(L"%d, \"%d", p1.x, p1.y);
ListBox1.AddString(str); 我测试没问题