我在程序中响应对话框的 WM_LBUTTONDOWN 事件,但在LicsCtrl上时不起作用,要在哪里处理一下?

解决方案 »

  1.   

    在LISTCTRL上时,WM_LBUTTONDOWN被LISTCTRL接收了.
      

  2.   

    从CListCtrl派生一个类,你的ListCtrl跟这个类关联,在这个类里面处理WM_LBUTTONDOWN消息。
      

  3.   

    从CListCtrl生成一个新的类CMyListCtrl,
    继承WM_LBUTTONDOWN事件
      

  4.   

    那在派生类的 WM_LBUTTONDOWN 事件中如何响应?
      

  5.   

    派生一个新类,自己处理WM_LBUTTONDOWN,OK?
      

  6.   

    不用派生新类,你将你的ListCtrl的LbuttonDown事件处理函数设置为与对话框的LButtonDown事件处理函数一样的就可以了。
      

  7.   

    在FORM1上加上两个LISTCTRL和一个MEMO控件. 加入以下代码:
    定义部分加入:
        procedure ButtonMsg (var Message : TMessage);
    代码部分加入:
    procedure TForm1.ButtonMsg(var Message: TMessage);
    begin
      if message.Msg = WM_LBUTTONDOWN then Memo1.Lines.Add ('ButtonMsg');
       LISTCTRL.Dispatch(message);
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      LISTCTRL.WindowProc := ButtonMsg;
    end;
      

  8.   

    派生一个新类,自己处理WM_LBUTTONDOWN,这样直观点,鼠标位置系统会传给你的
      

  9.   

    我在派生类中使用SendMessage函数,鼠标位置如何传递?