int CQueryDlg3::Index (COLORREF Color)
{
BYTE R = GetRValue(Color);
BYTE G = Get RValue(Color);
BYTE B = Get RValue(Color);
double mindis = 1000;
int m;
for (int i = 0; i < mapdatanum; i++)
{
double tmpdis = sqrt((R - mapdata[i].R)*(R - mapdata[i].R)
+ (G - mapdata[i].G)*(G - mapdata[i].G)
+ (B - mapdata[i].B)*(B - mapdata[i].B));
if (tmpdis < mindis)
{
mindis = tmpdis;
m = i;
}
}
if (mindis < 10)
return m;
else return 1000;
}
问题出在ctrl复制了第一行的BYTE R = GetRValue(Color);
但是后面函数没有将R改成GetGValue GetBValue
这个问题的debug耗时接近3个小时
但是学会了很多东西
比如如何加断点
如何在timer函数中让程序停下
如下
/*
if(abs(NewX - 531) + abs(NewY - 70) < 20)
{
int a = 0;/test
}*/
让鼠标在相应位置时timer函数停下跟踪
十分有用!