用vc写的一个ocx,有界面,在这个界面上点击右键会弹出一些有关操作的菜单,现在用vb进行调用,但是不想邮件弹出这个菜单,ocx的代码已经找不到了,只能想想api是否能解决,之前试过钩子的方法,好像不行。请问是否能将弹出的菜单屏蔽掉?

解决方案 »

  1.   

    简单的办法
    如果那个控件有MOUSEDOWN 和 MOUSEUP 事件就在
    MOUSEDOWN事件中将该控件的ENABELD属性设置为FALSE
    MOUSEUP事件中将该控件的ENABELD属性设置为TRUE
    如果那个控件的菜单是在MOUSEDOWN中出现的话 就不会出现菜单了
      

  2.   

    控件有句柄的话,可以用子类过滤掉他的鼠标右键消息,这样的代码n多,你可以利用google找到它控件没句柄的话,要看他是否提供了相应的接口,一个笨拙的方法是把控件放在容器控件中,然后设置容器控件的Enabled属性为false其实,最根本的办法是,利用资源编辑工具(如exescope),直接去掉右键菜单,这样做的好处是不用写代码,坏处是可能面对法律纠葛
      

  3.   

    非常感谢各位的支持,rainstormmaster(暴风雨 v2.0) 特别感谢你,你的方法解决了这个问题。