Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2010-11

How to handle WM_MOUSEWHEEL?

3 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

And3mD

Hello

I want to do some mouse scrolling control without focus. So I need handle WM_MOUSEWHEEL by myself. This message is not always caught by window WndProc.

In Delphi simply you can do that in TApplication.OnMessage().

In Lazarus i found only TApplication.OnUserInput but there is only message type in parameters (Sender: TObject;Msg: Cardinal).

How should I handle WM_MOUSEWHEEL in Lazarus?

Greetings
Andrzej Kilija?ski

Reply by email

Sven Barth
to And3mD
And3mD wrote 13 lines
Hello I want to do some mouse scrolling control without focus. So I need handle WM_MOUSEWHEEL by myself. This message is not always caught by window WndProc. In Delphi simply you can do that in TApplication.OnMessage(). In Lazarus i found only TApplication.OnUserInput but there is only message type in parameters (Sender: TObject;Msg: Cardinal). How should I handle WM_MOUSEWHEEL in Lazarus?

You might want to take a look here:
http://wiki.freepascal.org/Win32/64_Interface#Processing_non-user_messages_in_your_window

I'm using that approach successfully on Windows Mobile.

Regards,
Sven

Reply by email

And3mD
to Sven Barth

Thx for your approach.

I try something like this:

function WndCallback(Ahwnd: HWND; uMsg: UINT; wParam: WParam; lParam:
LParam):LRESULT; stdcall;
begin
   if uMsg=WM_MOUSEWHEEL then
   begin
     ShowMessage('Handled');
     exit;
   end;
   result:=CallWindowProc(PrevWndProc,Ahwnd, uMsg, WParam, LParam);
end;

And the message is handled when mouse is over some components, and not handled on others.

For Example it is handled when mouse is over TPanel on window but not when mouse is over TEdit or "Panel on Panel".

Anyone know why?

Greetings

Andrzej Kilijanski

Dnia 02-11-2010 o 13:42:13 Sven Barth
napisa?(a):

Show quoted text 28 lines
Am 01.11.2010 22:31, schrieb And3mD: > Hello > > I want to do some mouse scrolling control without focus. > So I need handle WM_MOUSEWHEEL by myself. This message is not always > caught by window WndProc. > > > In Delphi simply you can do that in TApplication.OnMessage(). > > In Lazarus i found only TApplication.OnUserInput but there is only > message type in parameters (Sender: TObject;Msg: Cardinal). > > How should I handle WM_MOUSEWHEEL in Lazarus? You might want to take a look here: http://wiki.freepascal.org/Win32/64_Interface#Processing_non-user_messages_in_your_window I'm using that approach successfully on Windows Mobile. Regards, Sven -- _______________________________________________ Lazarus mailing list http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply by email