リストボックスのスムーズスクロールを有効無効に          <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