AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Immer im Control unter dem Mauszeiger scrollen
Thema durchsuchen
Ansicht
Themen-Optionen

Immer im Control unter dem Mauszeiger scrollen

Ein Thema von himitsu · begonnen am 19. Nov 2010 · letzter Beitrag vom 30. Mai 2011
 
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#1

Immer im Control unter dem Mauszeiger scrollen

  Alt 19. Nov 2010, 22:48
Einige finden es bestimmt nervig, daß immer im Control mit dem Eingabefokus gescrollt wird und nicht dort, worüber sich der Mauszeiger befindet.

Hier ist also eine mögliche einfache Lösung dafür:
Delphi-Quellcode:
Procedure TForm1.MessageEvent(Var Msg: TMsg; Var Handled: Boolean);
  Var H: HWND;

  Begin
    If ((Msg.message = WM_MOUSEWHEEL) or (Msg.message = WM_MOUSEHWHEEL))
        and (Msg.wParam and MK_CONTROL = 0) Then Begin
      H := WindowFromPoint(Msg.pt);
      If (H = 0) or ((Msg.hwnd <> H) and (GetWindowThreadProcessId(H, nil) <> GetCurrentThreadId)) Then Begin
        Msg.hwnd := 0;
        Msg.message := WM_NULL;
        Handled := True;
      End Else Msg.hwnd := H;
    End;
  End;
Und dann natürlich noch Application.OnMessage := MessageEvent; .

Achtung: Wenn noch was Anderes dem Application.OnMessage zugewiesen ist/wird, dann muß man dieses mit beachten.


Ach ja, dieser Code leitet die Scrollereignisse immer nur im eigenem Programm weiter.
Es wird also nichts an fremde Programme übergeben. (stattdessen würde das Scrollergeignis verworfen)
Und das auch nur, wenn das eigene Programm den Eingabefokus besitzt.
(sonst empfängt es ja keines der nötigen Ereignisse)

[add]
Durch Drücken der [Strg/Ctrl]-Taste kann man die Umleitung nun auch vorübergehend deaktivieren.
Angehängte Dateien
Dateityp: 7z ScrollDemo.7z (152,6 KB, 17x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Nov 2010 um 14:25 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz