刚才已经开帖了,真的很想解决

解决方案 »

  1.   

    >>有没有办法让mdi子窗体随滚轮而滚动呢 
    怎麼 滚 法??是mdi子窗體上下移動???
      

  2.   

    darkliu(钢铁工人甲)兄已经在旧帖中帮过我了,用的是消息替换的想法,我试了不行
    照理说应该是可以的呀
    看来窗体的上下移动是通过一次性重绘全部控件实现的,现在只有这个想法,还在vcl
    里求证,大家看看有没有其他的解决之道吧
      

  3.   

    旧帖地址
    http://community.csdn.net/Expert/topic/3225/3225370.xml?temp=.7298242
      

  4.   

    处理MDI父窗体的OnMouseWheel事件procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    begin
      if WheelDelta>0 then
        begin
          self.ActiveMDIChild.Top:=self.ActiveMDIChild.Top+10;
        end
      else self.ActiveMDIChild.Top:=self.ActiveMDIChild.Top-10;end;
      

  5.   

    to wdonghai(小王)
    兄弟的代码实现的是子窗体整体在父窗体内上下移动
    我的意思是在子窗体内部实现上下滚动
    大家不妨试一试,如果子窗体上如果有滚动条,滚轮是不起作用的,
    只有通过鼠标点击或托拽滚动条才能让窗体里的控件上下滚动
      

  6.   

    在MDI子窗体的鼠标滚轮事件里进行处理procedure TForm2.FormMouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    begin
      if WheelDelta>0 then
        sendmessage(handle,WM_VSCROLL,SB_PAGEDOWN,0)
      else
        sendmessage(handle,WM_VSCROLL,SB_PAGEUP,0)
    end;
      

  7.   

    to wdonghai(小王)
    可行,谢谢