首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

坐标获取的有关问题

2012-03-31 
坐标获取的问题在窗口1上有一个panel控件,panel控件上有9个Bitbtn控件。窗口Form1调用form2 。首先定义了TBi

坐标获取的问题
在窗口1上有一个panel控件,panel控件上有9个Bitbtn控件。

窗口Form1调用form2 。

首先定义了
 TBitBtn* lpButton[10];
int stX[10];
int stY[10];
然后在窗口Form2的创建事件中执行
lpButton[1] = Form1->BitBtn1;
lpButton[2] = Form1->BitBtn2;
lpButton[3] = Form1->BitBtn3;
lpButton[4] = Form1->BitBtn4;
lpButton[5] = Form1->BitBtn5;
lpButton[6] = Form1->BitBtn6;
lpButton[7] = Form1->BitBtn7;
lpButton[8] = Form1->BitBtn8;
lpButton[9] = Form1->BitBtn9;

在一个按钮的单击事件中有下面的代码。

TPoint p[10];
int i = 1;



while (i < 10){
p[i] = lpButton[i]->Parent->Parent->ClientToScreen(p[i]);
stX[i] = (int)p[i].x;
stY[i] = (int)p[i].y;

AnsiString str1 = IntToStr((int)p[i].x);
AnsiString str2 = IntToStr((int)p[i].y);

::MessageBox(NULL,str1.c_str(),str2.c_str(),NULL);

i++;

}

目的是想在单击这个按钮的时候能弹出9个对话框,每个对话框中依次显示form1中9个按钮中1个按钮的实际坐标。

但是每次的9个对话框的内容完全一样,全都是Form1->BitBtn1的实际坐标。不知道错在哪里。谢谢大家。

[解决办法]
p[i] = lpButton[i]->Parent->Parent->ClientToScreen(p[i]);不就是等价于Form1->ClientToScreen(p[i]);值当然一样了

热点排行