windows下怎样发送消息模拟鼠标点击
我只会mouse_event那种,但是跟我预期的效果不一样。
我想要的是:
比如,我想点窗口A中的一个按钮,在窗口A最小化的时候,给A发一个消息什么的,让它响应在按钮上有一个鼠标点击的事件。。。
不知道我的问题描述清楚没有,windows支持这种消息不?
100分,望windows高人赐教。
------解决方案--------------------vc code:
VC的按钮只有两个消息,单击和双击,没有LButtonDown和LButtonUp,那只有先获得按钮的区域了,然后判断鼠标是在哪个按钮的区域中按下的;
获得按钮区域:
CButton m_Button1;
CRect rc;
m_Button1.GetWindowRect(rc);
响应:
void CYourDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//判断鼠标在哪个按钮区域中
if(PtInRect(rc, point))
{
}
CDialog::OnLButtonDown(nFlags, point);
Delphi code: procedure TForm1.Button1Click(Sender: TObject); begin SendMessage(WebBrowser1.Handle,WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(10,10)); SendMessage(WebBrowser1.Handle,WM_LBUTTONUP, MK_LBUTTON, MAKELONG(10,10)); end;
搜索的,希望对你有帮助
------解决方案--------------------找到窗口句柄,然后SendMessage或PostMessage。
------解决方案--------------------
如果你要模拟一个标准按钮的点击,可以事先用SPY++等工具查出按钮ID,在程序中使用FindWindow根据窗口标题和类名找到窗口,再用SendMessage向其发WM_COMMAND消息,wParam参数的低16位给按钮ID,高16位给BN_CLICKED。
对于非标准按钮,此方法未必有效,需要自己分析其消息机制。