我在rzgroupbar里加了两个trzgroup(rzgroup1和rzgroup2),在trzgroup里分别有richedit。
创建时,使rzgroupbar显示出垂直滚动条,并在richedit里输入内容,使它也显示出垂直滚动条。
为了使鼠标滚轮能够直接控制鼠标正下方控件的滚动条移动,我用了tapplication控件,在onmessage里加了以下代码:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
var
  proc_WinControl:TWinControl;
  proc_Point:TPoint;
  proc_Hwnd:Hwnd;
  i:Integer;
begin
  if Msg.message=WM_MOUSEWHEEL then
  begin
    if Form1.WindowState<>wsMinimized then
    begin
      GetCursorPos(proc_Point);
      proc_Hwnd:=WindowFromPoint(proc_Point);
      for i:=0 to Form1.ComponentCount -1 do
      begin
        if Form1.Components[i] is TWinControl then
        begin
          if TWINCONTROL(Form1.Components[i]).Handle=proc_Hwnd then
          begin
            proc_WinControl:=TWinControl(Form1.Components[i]);
            break;
          end;
        end;
      end;
      Msg.hwnd:=proc_Hwnd;
    end;
  end;
  handled:=False;
end;
运行以后发现存在以下的问题:
1)创建窗体后,如果没有打焦点放到richedit里,把鼠标放到richedit上,并转动滚轮,鼠标正下方的richedit的滚动条会动。再把鼠标移到rzgroupbar的滚动条上并转动滚轮,richedit的滚动条不动了,但是rzgroupbar的也不动。
2)把焦点放到richedit,并把鼠标放在它上面,转动滚轮,richedit的滚动条反倒不动了,rzgroupbar的开始动。
高手们帮帮忙吧,两天了都没解决,救救命吧!!!