我写了一个ATL控件,发现在delphi中无法响应右键菜单属性,改成复合控件后也还是不行。在C#中测试也不能弹出ContextMenuStrip属性菜单。不知是什么原因,如何解决,请教各位大侠!多谢!

解决方案 »

  1.   

    将atl控件 attach到目标进程中,单步调试调试一下ATL控件是否响应了你的单击消息?
      

  2.   

    抱歉,可能是我描述的不够清楚。不是说不能响应鼠标右击事件,而是说在用户按鼠标右键时,不能弹出delphi中赋予的右键菜单。用过Delphi的知道,dephi中控件会有一个属性,可以把事先设计好的菜单对象指定给该属性,程序运行时,右击鼠标,该菜单自动就会弹出来,而不是自己写代码让它弹出来。我试过c#中也有这么一个类似的属性ContextMenuStrip。
    我的疑问是,这个属性并不是我在ATL控件中写的,而是调用的Delphi或C#自动给生成的,所以现在想跟踪调试也感觉无从下手。请问哪位ATL高手能帮忙解释一下,多谢!
      

  3.   

    我跟踪过,控件的OnRButtonUp事件是会响应的,就是无法响应delphi中控件的PopupMenu属性,或者C#中的ContextMenuStrip属性。不知道是什么原因?