コンボボックスをアニメーションで開く <TOP>
「コンボボックスをアニメーションで開く」の設定と解除
SystemParametersInfo システム全体に関するパラメータを取得・設定
左:アニメーションオープン解除 右:アニメーションオープン設定
Windows 7 で試したところ「AnimeOn」は効きませんでした。(Vistaではどうなんでしょう?)2010-02-28
'================================================================ '= コンボボックスをアニメーションで開く '= (ComboSlideOpen.bas) '================================================================ #include "Windows.bi" #define SPI_SETCOMBOBOXANIMATION &H1005 'コンボボックスを開くときアニメーション効果を有効・無効に設定 #define SPIF_UPDATEINIFILE &H1 'ユーザープロファイルの更新を指定する定数の宣言 #define SPIF_SEndWININICHANGE &H2 '全てのアプリケーションに通知して更新する #define SPIF_SEndCHANGE SPIF_SEndWININICHANGE ' システム全体に関するパラメータを取得・設定 Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&) Var Shared Combo1 As Object
Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14
'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
Var Ret As Long
For i = 1000 To 1140
Combo1.AddString Str$(i)
Next
' コンボボックスのアニメーション効果の有効・無効を設定
Ret = Api_SystemParametersInfo(SPI_SETCOMBOBOXANIMATION, 0, ByVal 0, SPIF_UPDATEINIFILE Or SPIF_SEndCHANGE)
End Sub
'================================================================
'=
'================================================================
Declare Sub Radio1_on edecl ()
Sub Radio1_on()
Var Ret As Long
' コンボボックスのアニメーション効果の有効・無効を設定
Ret = Api_SystemParametersInfo(SPI_SETCOMBOBOXANIMATION, 0, ByVal 0, SPIF_UPDATEINIFILE Or SPIF_SEndCHANGE)
End Sub
'================================================================
'=
'================================================================
Declare Sub Radio2_on edecl ()
Sub Radio2_on()
Var Ret As Long
' コンボボックスのアニメーション効果の有効・無効を設定
Ret = Api_SystemParametersInfo(SPI_SETCOMBOBOXANIMATION, 0, ByVal 1, SPIF_UPDATEINIFILE Or SPIF_SEndCHANGE)
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End