有一个控件,没有mousedown事件,我想鼠标点右键时弹出一个POPMENU,如何判断点了鼠标右键?

解决方案 »

  1.   

    如果是自己写的话,可以考虑拦截WMLButtonDown
      

  2.   

    从TControl继承下来的组件都有WndProc和WindowProc通过他们可以自己处理消息.如
    先定义一个
    Procedure MyProcess(var AMessage:TMessage);
    在create或相应的地方设置组件的WindowProc:=MyProcess;
    Procedure ***.MyProcess(var AMessage:TMessage);
    begin
      case AMessage.MSG of
        WM_RButtonDown:
         begin
         end;
      end;
      WndProc(AMessage);//将消息传递给本身的处理函数.
    end;