リストボックスのスムーズスクロールを有効無効に <TOP>
SystemParametersInfo システム全体に関するパラメータを取得・設定
SPI_SETLISTBOXSMOOTHSCROLLING(&H1007)
リストボックスのスムーズスクロールを有効・無効に
SPIF_SENDWININICHANGE(&H2)
全てのアプリケーションに通知して更新する
SPIF_UPDATEINIFILE(&H1)
ユーザープロファイルの更新を指定する
有効・無効を選択し「実行」ボタンをクリック後、スクロールバーの「∧」「∨」をクリックしスクロールを確認してください。

'================================================================ '= リストボックスのスムーズスクロールを有効無効に設定
'= (SPI_SETLISTBOXSMOOTHSCROLLING.bas) '================================================================ #include "Windows.bi" #define SPI_SETLISTBOXSMOOTHSCROLLING &H1007 'リストボックスのスムーズスクロールを有効・無効に #define SPIF_SENDWININICHANGE &H2 '全てのアプリケーションに通知して更新する #define SPIF_UPDATEINIFILE &H1 'ユーザープロファイルの更新を指定する定数の宣言 #define SPIF_SENDCHANGE SPIF_SENDWININICHANGE ' システム全体に関するパラメータを取得・設定 Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&) Var Shared List1 As Object Var Shared Radio1 As Object Var Shared Radio2 As Object
Var Shared Button1 As Object
List1.Attach GetDlgItem("List1") : List1.SetFontSize 14
Radio1.Attach GetDlgItem("Radio1") : Radio1.SetFontSize 14
Radio2.Attach GetDlgItem("Radio2") : Radio2.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
'================================================================
'=
'================================================================
Declare Function Index bdecl () As Integer
Function Index()
Index = Val(Mid$(GetDlgRadioSelect("Radio1"), 6)) -1
End Function
'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
For i = 0 To 20
List1.AddString Str$(i)
Next
End Sub
'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
Var Ret As Long
'スムーズスクロール効果の有効無効を設定
Ret = Api_SystemParametersInfo(SPI_SETLISTBOXSMOOTHSCROLLING, 0, ByVal Index, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE)
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End