如何判断一个点是不是在某个区域里

zhangwuji156 2008-06-03 02:36:40
比如给定一个Image的一个区域(10,10)(100,100)(注,10是在图片上的相对位置,不是在整个面板上的位置),鼠标在动,动的时候判断是不是在这个区域,当然简单的用if判断也行,不过在程序设计的时候,如果调整图片的位置,整个判断的数值就得变,麻烦,有没有其它更好的办法,给出在图片上的位置即可?
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxw1987628 2008-06-03
  • 打赏
  • 举报
回复

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
Image1->Canvas->TextOutA(X,Y,"X:"+String(X)+",Y:"+String(Y));
}
//---------------------------------------------------------------------------




你计算的时候,可以根据Image的Left,Top值来的呀
eternalkid 2008-06-03
  • 打赏
  • 举报
回复
TPoint pt;
Rect Rect;
PtInRect(&Rect,pt);
zhangwuji156 2008-06-03
  • 打赏
  • 举报
回复
在mousemove里

if((X>Image1->Left&&X<Image1->Left+Image1->Width)&&(Y>Image1->Top+15&&Y<Image1->Top+Image1->Height))
{
Label1->Caption="是";
}else
Label1->Caption="否";

这样很麻烦,我记得有个什么函数是判断点在不在区域里的

602

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧