在vs2008中用MFC插入了一个Microsoft webbrower控件,设置属性为可以接拖放,现在情况是这样子的,在一个对话框 中有一个树控件,和上面所说的webbrower控件,我想实现的功能是,从树控件中拖入一个节点,节点带有经纬度信息,当webbrower控件打开一张地图时,能在相应位置插入一个标志。现在的问题是,我自己重写了COleDragTarget,当webbrower控件没打开地图时,此控件能接收到鼠标拖入的消息,但当webbrower控件打开地图时就不能接收到鼠标拖入的消息,这个问题怎么解决,求高手!!!!!!!!拖放webbrower地图

解决方案 »

  1.   

    不接收没关心,你可以在树控件响应WM_LBUTTONDOWN消息时就调用得到坐标信息,然后SetCapture,有需要的话,可以用SetCursor设置鼠标的形状,再处理WM_LBUTTONUP消息,调用ReleaseCapture,然后再用PtInRect方法来判断是否在webbrowser上,是的话就给web控件传递这个坐标信息
      

  2.   

    @fishion 难道没有什么方法能让web窗口在打开地图时也能接收拖放吗???这种的话用户体验性会好些。下图是我的界面
      

  3.   

    @fishion 难道没有什么方法能让web窗口在打开地图时也能接收拖放吗???这种的话用户体验性会好些。下图是我的界面
      

  4.   

    你的意思是说,树控件响应WM_LBUTTONDOWN,那WM_BUTTONMOVE应该谁响应,还有WM_LBUTTONUP??我是想实现两控件拖放通讯
      

  5.   

    用MFC和web交互的类试下吧
    ImpIDispatch
      

  6.   

    你这是什么地图呀你的意思是说,树控件响应WM_LBUTTONDOWN,那WM_BUTTONMOVE应该谁响应,还有WM_LBUTTONUP??我是想实现两控件拖放通讯WM_BUTTONMOVE不需要响应,也没这个消息吧,WM_LBUTTONUP当你那个左键弹起时就会触发的,当前是WM_LBUTTONDOWN调用了SetCapture
      

  7.   

    Quote: 引用 7 楼 fishion 的回复:

    你这是什么地图呀
    百度地图,百度地图有开源的JS API
      

  8.   

    是ON_WM_MOUSEMOVE
    WM_MOUSEMOVE不用处理,只需要处理我说的那两个消息
      

  9.   

    用了你的方法,可是当web窗口打开一网页,窗口就不能捕捉到鼠标事件
      

  10.   

    用了你的方法,可是当web窗口打开一网页,窗口就不能捕捉到鼠标事件
    在WM_LBUTTONUP消息中ReleaseCapture调用了没
      

  11.   

    调用了,我怀疑是因为地图把整个web窗口给覆盖掉了,所以鼠标放在地图上时,是地图获取了焦点,web窗口无法获取焦点,所以才不能捕捉鼠标事件,大侠有木有解决办法啊