マウスホイールのスクロール量を設定 <TOP>
マウスホイールのスクロール量を取得・設定します。
SystemParametersInfo システム全体に関するパラメータを取得・設定
SPI_GETWHEELSCROLLLINES(104)
マウスホイールの回転によってスクロールされる行数の値を取得
SPI_SETWHEELSCROLLLINES(105)
マウスホイールの回転によってスクロールされる行数の値を設定
SPIF_SENDWININICHANGE(&H2)
全てのアプリケーションに通知して更新
SPIF_UPDATEINIFILE(&H1)
ユーザープロファイルの更新を指定
起動時に、スクロール量を取得し、終了時にその値に戻しています。
'================================================================ '= マウスホイールのスクロール量を設定 '= (SetWheelScrollLines.bas) '================================================================ #include "Windows.bi" #define SPI_GETWHEELSCROLLLINES 104 'マウスホイールの回転によってスクロールされる行数の値を取得(WindowsNT以降) #define SPI_SETWHEELSCROLLLINES 105 'マウスホイールの回転によってスクロールされる行数の値を設定(WindowsNT以降) #define SPIF_SENDWININICHANGE &H2 '全てのアプリケーションに通知して更新 #define SPIF_UPDATEINIFILE &H1 'ユーザープロファイルの更新を指定 ' システム全体に関するパラメータを取得・設定 Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&) Var Shared Text1 As Object Var Shared Edit1 As Object Var Shared Button1 As Object Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 Var Shared ScrollValueOrg As Long Var Shared ScrollValue As Long '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var Ret As Long Ret = Api_SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, ScrollValueOrg, 0) Text1.SetWindowText "スクロール量( " & Str$(ScrollValueOrg) & " ) →" SetWindowText "スクロール量(" & Trim$(Str$(ScrollValueOrg)) & ")" End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var Ret As Long Ret = Api_SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, ScrollValue, 0) Text1.SetWindowText "スクロール量(" & Str$(ScrollValue) & " ) →" 'ホイールの1目盛りでスクロールする量を指定 ScrollValue = Val(Edit1.GetWindowtext) 'ホイールの1目盛りでスクロールする量を設定 Ret = Api_SystemParametersInfo(SPI_SETWHEELSCROLLLINES, ScrollValue, ByVal CLng(0), SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE) SetWindowText "スクロール量(" & Trim$(Str$(ScrollValue)) & ")" End Sub '================================================================ '= '================================================================ Declare Sub MainForm_QueryClose edecl () Sub MainForm_QueryClose() Var Ret As Long Ret = Api_SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, ScrollValue, 0) Ret = Api_SystemParametersInfo(SPI_SETWHEELSCROLLLINES, ScrollValueOrg, ByVal CLng(0), SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE) Text1.SetWindowText "スクロール量(" & Str$(ScrollValue) & " ) →" Edit1.SetWindowtext Trim$(Str$(ScrollValueOrg)) A% = MessageBox("", "元のスクロール量に戻します", 0, 0) End End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End