Q&A

  • 휠마우스 이벤트좀....
ScrollBox 를 썼는데 휠마우를 전혀 먹지 않는군여...

이벤트를 보니 "MouseWheelup""MouseWheelDown" 이 있는데 워낙에 초보실력이라 어찌해야 할지 모르겠습니당...

showmessage를 사용해서 이벤트 발생하는걸 볼려했는데 전혀 발생도 안하구여...

검색을 해봐도 이벤트를 이용하라고만 나와있지,

어케쓰는지는 안나와 있더라구여... ㅠ.ㅠ

답답한 마음에 글올립니다...

고수님들께 한수 부탁드립니다...



1  COMMENTS
  • Profile
    최용일 2001.05.29 22:04
    안녕하세요. 최용일입니다...



    휠이벤트가 발생하면 먼저 OnMouseWheel이벤트가 발생합니다. 여기에서 처리하시면 됩니다... 좀더 세부적으로 나누어서 처리하실려면 파라매터로 들어오는 Handled값을 False로 셋팅하시면 OnMouseWheelDown, OnMouseWheelUp이벤트가 발생합니다... 그럼 이 이벤트에서 조금더 세부적으로 처리하시면 되겠죠...



    근데 문제는 스크롤박스에서 휠마우스이벤트가 발생할려면 스크롤박스에 포커스가 잡혀있어야 합니다. 때문에 언제 어디서든 휠마우스이벤트가 발생할때마다 스크롤박스를 제어하실려면 스크롤박스보다는 폼의 휠마우스이벤트를 이용하시는 것이 좋겠죠...



    // 폼의 OnMouseWheel 이벤트

    procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;

    WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

    begin

    if WheelDelta >= 0 then

    SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_LINERIGHT, 0)

    else

    SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_LINELEFT, 0);

    Handled := True;

    end;



    또는...



    // 폼의 OnMouseWheel 이벤트

    procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;

    WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

    begin

    Handled := False;

    end;



    // 폼의 OnMouseWheelDown 이벤트

    procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;

    MousePos: TPoint; var Handled: Boolean);

    begin

    SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_LINELEFT, 0);

    Handled := True;

    end;



    // 폼의 OnMouseWheelUp 이벤트

    procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;

    MousePos: TPoint; var Handled: Boolean);

    begin

    SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_LINERIGHT, 0);

    Handled := True;

    end;



    ^^ 항상 즐코하세요...



    초오보~ wrote:

    > ScrollBox 를 썼는데 휠마우를 전혀 먹지 않는군여...

    > 이벤트를 보니 "MouseWheelup""MouseWheelDown" 이 있는데 워낙에 초보실력이라 어찌해야 할지 모르겠습니당...

    > showmessage를 사용해서 이벤트 발생하는걸 볼려했는데 전혀 발생도 안하구여...

    > 검색을 해봐도 이벤트를 이용하라고만 나와있지,

    > 어케쓰는지는 안나와 있더라구여... ㅠ.ㅠ

    > 답답한 마음에 글올립니다...

    > 고수님들께 한수 부탁드립니다...

    >