如何从一个控件发消息到同一个FORM下的另一个控件?

general001 2006-04-09 03:57:14
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{

HWND hWnd = FindWindow(NULL,"Button3");
if(hWnd != NULL)
PostMessage(hWnd,WM_LBUTTONDOWN,0,0);//我怎样在这里能够让Button3Click运行?

}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
.............
}
...全文
356 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
general001 2006-07-02
  • 打赏
  • 举报
回复
问题没解决,最后我用了最愚蠢的方法----用了两个定时器。还是多谢各位的回复。
ccrun.com 2006-04-12
  • 打赏
  • 举报
回复
用自定义消息最合适了。发一个自定义的消息给另一个Form,当这个Form收到消息以后,调用Button3的click事件就行了。用FindWindow查找Button3是下下策。要知道同一个时刻系统里有N多的窗口,你能保证不重名吗?
xiaoshi0 2006-04-12
  • 打赏
  • 举报
回复
PostMessage调用后直接返回
XBox360 2006-04-12
  • 打赏
  • 举报
回复
问个问题,为什么timer不运行了?直接调用button3的click事件应该是最简单的

或者SendMessage(Button3->Handle, BM_CLICK, NULL, NULL);
general001 2006-04-10
  • 打赏
  • 举报
回复
顶一下,希望大侠出手相救,不胜感激!
general001 2006-04-10
  • 打赏
  • 举报
回复
谢谢,但这样做我的Timer1Timer就不运行了,必须等到 Button3Click(Sender)执行完成后才能返回。是否应该用WM_COMMAND消息?但这个消息我不知怎么用,望前辈指导,十分感谢!
wg961423 2006-04-10
  • 打赏
  • 举报
回复
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Button3Click(Sender);
}
wg961423 2006-04-10
  • 打赏
  • 举报
回复
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Button3Click(Sender)
}
general001 2006-04-09
  • 打赏
  • 举报
回复
多谢liangqingzhi(老之) 帮助!
我的BUTTON3如果是菜单里面的按钮,为什么不行呢?
按下鼠标和松开鼠标没有一个CLICK的消息吗?
老之 2006-04-09
  • 打赏
  • 举报
回复
汗,写错了。Button3->Handle,自己找出Button3的句柄
老之 2006-04-09
  • 打赏
  • 举报
回复
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
HWND hForm = FindWindow(NULL,"Form1");
if (hForm != NULL)
{
HWND hWnd =(NULL,"Button3");
if(hWnd != NULL)
{
PostMessage(Button3->Handle,WM_LBUTTONDOWN,0,0);//按下鼠标
PostMessage(Button3->Handle,WM_LBUTTONUP,0,0);//松开鼠标
}
}
}

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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