怎么自动点应用程序的 Toolbar 上的按钮呢?

Behard 2003-04-03 01:29:23
RT
好像使用 Components[i] 访问不了
我看 MSDN 有 CToolBar::GetToolBarCtrl,但是不知道在 BCB 中如何操作?
...全文
28 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Behard 2003-04-09
  • 打赏
  • 举报
回复
To jishiping:
我不知道怎么取得 ToolBar 的 handle 呀
ToolBar 是 QReport 自动产生的
jishiping 2003-04-09
  • 打赏
  • 举报
回复
用EnumChildWindows枚举,或者用FindWindowEx查找。ToolBar的ClassName 应该包含文字
ToolBar(不要区分大小写)。
binbin 2003-04-09
  • 打赏
  • 举报
回复
ToolBar的按钮不是子窗口吧
SeekTruth 2003-04-08
  • 打赏
  • 举报
回复

向楼上的学习。
jishiping 2003-04-08
  • 打赏
  • 举报
回复
ToolBar上的Button,用API是枚举不到的。应该用消息来取得。首先要取得ToolBar的句柄。
TBBUTTON Btn;
SendMessage(hToolBar, TB_GETBUTTON, nIndex, (long)&Btn);
Btn.idCommand 就是命令的ID,然后发送消息 WM_COMMAND 就可以了。
SendMessage(hWnd, WM_COMMAND, Btn.idCommand, (long)hToolBar);
JetKingLau 2003-04-06
  • 打赏
  • 举报
回复
首先在QReport的Form上查找Components,如果Components[i]->ClassNameIs("TToolBar"),则 TToolBar *toolbar = (TToolBar*)Components[i];(如果有多个ToolBar还须进一步判断),
再判断 TToolBar->Buttons[j]->Caption 是否是你想要的,最后TToolBar->Buttons[j]->OnClick;

he_Fly 2003-04-04
  • 打赏
  • 举报
回复
用FindWindowEx试试,如果层数太多比较麻烦,类名可以通过SPY++得到.
顺便帮我看看这个...
http://expert.csdn.net/Expert/topic/1617/1617428.xml?temp=.6163294
Behard 2003-04-04
  • 打赏
  • 举报
回复
可能是我说得不够清除,我的 ToolBar 不是我自己写的
而是有 QReport 自动产生的,怎么样使用呢?
l_clove 2003-04-04
  • 打赏
  • 举报
回复
button->Click();
Behard 2003-04-03
  • 打赏
  • 举报
回复
那岂不是要使用 EnumWindows 了
我想操作 报表 上的一个操作,而 ToolBar 不是 Form 上的
myy 2003-04-03
  • 打赏
  • 举报
回复
TToolbar->Buttons[i]
Behard 2003-04-03
  • 打赏
  • 举报
回复
好像不行,因为 Toolar 在 Client 的 上面
duduwolf 2003-04-03
  • 打赏
  • 举报
回复
模拟操作鼠标不行吗?

1,221

社区成员

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

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