社区
C++ Builder
帖子详情
控件数组,+ 鼠标事件 + 该控件的 index
com235
2002-04-21 03:16:20
大约可以描述为电子地图,有10个点,是10个小ico 或 bmp 数组,希望在鼠标点其中一个时,在onclick事件中得到 该控件的index 。
我困惑好久了,以前在VB6 中很方便,现在 VB.Net也不行了,C++Bulider可以如何作??
感谢大民, Delphi 下我完全实现我的期望了
...全文
105
10
打赏
收藏
控件数组,+ 鼠标事件 + 该控件的 index
大约可以描述为电子地图,有10个点,是10个小ico 或 bmp 数组,希望在鼠标点其中一个时,在onclick事件中得到 该控件的index 。 我困惑好久了,以前在VB6 中很方便,现在 VB.Net也不行了,C++Bulider可以如何作?? 感谢大民, Delphi 下我完全实现我的期望了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Borlandor
2002-04-22
打赏
举报
回复
如此写即可:
int i;
for(i=0;i<10;i++)
{
Images[i]= new TImage(this);
Images[i]->Parent = Form1;
Images[i]->Picture->LoadFromFile("c:\\Temp\\MAPIF4L.ICO");
Images[i]->Top = i*20;
Images[i]->Tag = i;
//ImageClick :TImage->Image2->OnClick();//这句话表达的意识 该如何写?
Images[i]->OnClick = ImageClick;
}
void __fastcall TForm1::ImageClick(TObject *Sender)
{
Edit1->Text = IntToStr(((TImage*)Sender)->Tag);
}
pp616
2002-04-22
打赏
举报
回复
你先写一个Image1的OnClick()
代码如下:
void __fastcall TForm1::Image1Click(TObject *Sender)
{
TImage *img;
img=(TImage *)Sender; //将Sender强制转换为TImage
//然后就switch来判段按的是哪个Image控件了。
switch (img->Tag)
{
case 1:
ShowMessage("1");
break;
case 2:
ShowMessage("2");
break;
......
}
}
然后将下面的Image控件的Tag设置一下。
在把他们的OnClick设置成Image1的OnClick就好了。
Chimae
2002-04-22
打赏
举报
回复
所有的Image调用同一个Image1->OnClick事件;在Image1->OnClick中用Sender替代Image1,这样就可以了,具体如下:
TImage *theImage;
theImage = (TImage *)Sender;
这里的theImage就是Image1,你不同的Image2传递的Sender;
wangyagang
2002-04-22
打赏
举报
回复
加分
wangyagang
2002-04-22
打赏
举报
回复
1自定义消息
#define WM_MYClICK1 (WM_USER+201)
2//消息的响应过程
void __fastcall OnMyclick1(TMessage Message)
{
}
//以下通过宏定义实现消息的正确响应
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_MYClICK1, TMessage, OnMyclick1)
MESSAGE_HANDLER(WM_MYClICK2, TMessage, OnMyclick2)
.
.
.
.
. END_MESSAGE_MAP(TForm)
com235
2002-04-22
打赏
举报
回复
to 风舞飞扬 我的意思是如何产生Image1[i] 的 onclick事件代码????
windindance
2002-04-21
打赏
举报
回复
以后提问前请先搜索。
Image1[i]->OnClick = Image2->OnClick;
com235
2002-04-21
打赏
举报
回复
大佬:
怎样写Onclick()?
int i;
for(i=0;i<10;i++)
{
Image1[i]= new TImage(this);
Image1[i]->Parent = Form1;
Image1[i]->Picture->LoadFromFile("c:\\aa.bmp");
Image1[i]->Top = i*20;
Image1[i]->Tag = i;
ImageClick :TImage->Image2->OnClick();//这句话表达的意识
//该如何写?
}
com235
2002-04-21
打赏
举报
回复
I try it
windindance
2002-04-21
打赏
举报
回复
使用控件的Tag属性
10个bmp 数组有不同的Tag
onclick中取得Sender的Tag
VB版数字排序拼图小游戏
Dim Label2X As Integer '记录标签
控件
数组
中要移动的标签
控件
左上角X的位置 Dim Label2Y As Integer '记录标签
控件
数组
中要移动的标签
控件
左上角Y的位置 '让标签
数组
中的每个标签
控件
上显示的数字是随机的,无...
C#全能速查宝典
《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用
控件
、Windows高级
控件
、
控件
公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...
VBA从入门到精通(
控件
+类模块+ADO+SQL数据库)
VBA中比较高阶的课程,主要讲解关于各种事件的应用,各种
控件
的应用,如果使用类模块,如果在VBA用调用SQL语句去处理数据库中的数据等操作。学习完成本课后,你可以在Excel中开发各种小型应用系统。以下是课程主要...
VB6实现动态增加和删除
控件
数组
中的
控件
2021-06-02
VB6实现动态多行增加和删除
控件
Option Explicit Dim S1GlngMaxCharactor As Long Dim ChoiceRemove As Long '选择角色移除对象 Private Sub CmdAdd() Dim i As Long, n As Long Dim MaxCharactor As Long ...
VB6实现用鼠标左键拖动
控件
移动2021-05-31
1.添加一个Frame
控件
,名称改为FamWork,设置成
控件
数组
。(设置成
控件
数组
才能和代码匹配) 下面代码实现了用鼠标左键按住Frame
控件
然后移动Frame的效果。 Dim FamOldX As Single: Dim FamOldY As Single ...
C++ Builder
13,826
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章