如何给其他应用程序窗口的工具栏中的工具按钮发类似Click的消息?
我截获了工具栏按钮的Click消息.其中有WM_COMMAND消息,我用消息函数
SendMessage(hToolbar,WM_COMMAND,INDEX,0);
怎么没有处理相应的Click函数?是还有其他伴随消息或者消息发送的不正确?
问题点数:20、回复次数:10Top
1 楼sonyboss(zerodj)回复于 2002-11-15 23:39:59 得分 2
click事件实际是MOUSE的按下后的事件
也可以给那个按纽发送键盘按下回车事件
//本程序操作了已经是EXE的窗口程序
//如果你是在你自己的程序中调用那HWND得到就更加正确了
//在一个CAPTION为form1的窗口程序上
AnsiString="form1";
HWND wnd
//取得caption为form1窗口的句柄
wnd= FindWindow(NULL,s.c_str());
//取得该窗口上CAPTION为OK的按钮(也可以是工具条上的按钮)句柄
wnd = FindWindowEx(wnd, 0, NULL, "OK");
//在这个按钮上模拟一个回车安下的事件
if(wnd!=NULL)PostMessage(wnd,WM_KEYDOWN,VK_RETURN,0);Top
2 楼hatumei(明月)回复于 2002-12-05 10:55:43 得分 0
不行呀,我试过了,对一般的窗口有效,对toolbar就不行了Top
3 楼zbc(修身养息,百战不怠)回复于 2002-12-05 13:43:19 得分 2
对于单击消息的处理,好像是没有这样的消息的,除非我没有用到过:(
不过,如果是MouseDown消息,那还差不多
SendMessage(handle,WM_LBUTTONDOWN,MK_LBUTTON,NULL);Top
4 楼invalid(空心菜(Python是个好东东,大家多用用!))回复于 2002-12-05 13:44:54 得分 2
toolbar上的按钮好像没有句柄。Top
5 楼hatumei(明月)回复于 2002-12-06 10:33:29 得分 0
to:invalid(空心菜之2.0开发中)
对,我跟踪了WM_COMMAND消息,其中wparam就是toolbutton的索引,但我用SendMessage(hToolbar,WM_COMMAND,INDEX,0);
却没有效果,是否还有别的消息?Top
6 楼keenleung(Sword Master)回复于 2002-12-06 11:00:01 得分 2
用WM_LBUTTONDOWN和WM_LBUTTONUP去跟跟看
SendMessage(Toolbar->handle,WM_LBUTTONDOWN,1,LPARAM);
SendMessage(Toolbar->handle,WM_LBUTTONUP,0,LPARAM);
LPARAM表示鼠标点击的位置,可以直接用跟出来的结果Top
7 楼hatumei(明月)回复于 2002-12-06 16:53:44 得分 0
不行的,还是无法定位工具按钮Top
8 楼invalid(空心菜(Python是个好东东,大家多用用!))回复于 2002-12-06 16:58:06 得分 2
WM_COMMAND我也没有试验成功啊。
还有TB_PRESSBUTTON也不行啊。Top
9 楼keenleung(Sword Master)回复于 2002-12-06 17:44:33 得分 2
不知道怎么回事,我这边是可以的
用WM_LBUTTONDBLCLK和WM_LBUTTONUP来模拟双击右下角的ToolBarWindow32都可以了Top
10 楼zbyjjyy(1)回复于 2002-12-09 03:18:38 得分 8
关于ToolBar我知道两点,不知对你们有没有帮助:
1、ToolButton继承自TGraphicControl而不是TWinControl,它其实不是一个Window,更不是一个Button,它的一切,都是由其父组件——ToolBar负责实现的。外人有它什么事,该找它“老豆”(ToolBar)。
2、当ToolButton被MouseDown时,会捕获鼠标(MouseCapture,当然,实质为ToolBar的MouseCapture)。Top




