MFC 单文档结构,CHtmlView视图。
现在的问题是:CHtmlView打开了一个Flash当我在View类中用PostMessage发送一个鼠标点击消息,只有当鼠标放到那个FLASH 上,点击才有效果,
如果鼠标未停留在FLASH上,随便你怎么发送消息都无效..
经过测试,发送有所FLASH 都是这样子的,必须鼠标停在上面,有焦点了,
在VIEW类中发送消息,才会有反应!!怎么办啊..我不想动鼠标啊..
是怎么问题呢?
如果鼠标放在上面,设置了焦点SetActiveWindow();
SwitchToThisWindow();
SetFocus();
SetForegroundWindow
等等均效果..
只要鼠标在上面 就有效果..FLASH一切正常 并没有任何防止鼠标模拟消息的动作...在线等,回答有效,立即结分!!!

解决方案 »

  1.   

    SetCursorPos 设置鼠标位置到Flash上
      

  2.   

    你再传个在指定区域内的MOUSEMOVE试试,在传递鼠标按下之前
      

  3.   

    模拟鼠标点击对于某些程序来说根本是很困难的。
    我以前尝试对opera模拟点击,花了很大的功夫都没有成功。
    程序内部在判断鼠标点击的原理可能很特殊
      

  4.   

    没源码啊,只能猜啦:
    WM_LBUTTONDBLCLK 
    fwKeys = wParam;        // key flags 
    xPos = LOWORD(lParam);  // horizontal position of cursor 
    yPos = HIWORD(lParam);  // vertical position of cursor 这个xyPos设置了没,如果没可将坐标设置到FLASH 的区域试试,注意xyPos是相对client area
      

  5.   

    看错了是
    WM_LBUTTONDOWN
    WM_LBUTTONUP 
      

  6.   

    另外可试试在PostMessage前先SetCapture, 设置Flash来捕获鼠标消息,PostMessage完了再ReleaseCapture.如果Flash播放是用控件的
    GetDlgItem(FLASH_ID)->SetCapture()之类的应该可行吧?反正要执行到SetCapture
      

  7.   


    实在不行只有用mouse_event了吧,1,先记录鼠标当前的位置
    2,再用mouse_event模拟鼠标点击FLASH一次
    3,然后鼠标回到原来记录的位置想不到好的方法就折中吧,我以前编个对对碰的外挂也这么整过,如果处理速度够快,似乎看不出来鼠标动过。
      

  8.   

    我现在折中的办法 是 移动窗口 不移动鼠标了..把窗口移动到鼠标上 在PostMessage一下.
    不过200毫秒内 确实无感觉。