我在做这样的功能:
鼠标在cxgridDBTableView上停留一定时间 就弹出提示窗口,显示关联的数据,要求截取WM_MOUSEHOVER事件.
我在自定义的Memo里也做过一模一样的功能,但是这些写在CXGRIDTABLEVIEW里就不起作用,不知道是怎么回事,请高手指点.
procedure TsmiMemo.SetTrackMouseEvent;
var
  TmeHov: TTrackMouseEvent;
begin
  ZeroMemory(@TmeHov,sizeof(TmeHov));  TmeHov.cbSize := sizeof(TmeHov);
  TmeHov.dwFlags := TME_HOVER;
  TmeHov.hwndTrack := handle;
  TmeHov.dwHoverTime := 1000;  TrackMouseEvent(TmeHov);
end;procedure TsmiMemo.WMMouseMove(var msg: TWMMouse);
begin
  SetTrackMouseEvent;
end;procedure TsmiMemo.WMMouseHover(var msg: TWMMouse);
begin
  ....
end;

解决方案 »

  1.   

    在cxgridDBTableView的OnMouseEnter事件中响应可以么?
      

  2.   

    没用过cxgridDBTableView,不能帮你回这个贴是感谢你上面贴的代码,让我学到东西了
      

  3.   

    cxGrid1DBTableView本身有MouseMove事件啊,在这了写。不用截获消息。
      

  4.   

    谢谢楼上几位的关注
    程序要求cxGridDBTableView触发WM_MOUSEHOVER消息,但是这个消息应该要在WM_MOUSEMOVE里追踪
    同样用在Memo里就可以 
    不知道哪里有问题,郁闷中...
      

  5.   

    cxGridDBTableView控件从多个基础控件继承来的或者是由几个控件拼凑在一起的,所触发的WM_MOUSEHOVER消息不一定像你想想的那样,是cxGridDBTableView触发的。所以也在这个控件上写标准控件的东西写不成。