フォームのアニメーション移動(最小化・戻る時)          <TOP>


フォームを最小化(アイコン化)するとき、タスクバーから元に戻すときアニメーション表示・・・

SystemParametersInfo システムワイドパラメータを問い合わせや設定

SPI_SETANIMATION(73) アニメーション効果を設定
SPIF_UPDATEINIFILE(&H1) ユーザープロファイルの更新を指定
SPIF_SENDWININICHANGE(&H2) 全てのアプリケーションに通知して更新
 

 

 

'================================================================
'= アニメーション効果(フォームの最小化・戻る時)
'=    (SysParamInfo.bas)
'================================================================
#include "Windows.bi"

Type tagANIMATIONINFO
    cbSize      As Long
    iMinAnimate As Long
End Type

' システム全体に関するパラメータを取得・設定
Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&)

#define SPI_SETANIMATION 73             'アニメーション効果を設定
#define SPIF_UPDATEINIFILE &H1          'ユーザープロファイルの更新を指定する定数の宣言
#define SPIF_SENDWININICHANGE &H2       '全てのアプリケーションに通知して更新する
#define SPIF_SENDCHANGE SPIF_SENDWININICHANGE

Var Shared AnimFlag As Byte

'================================================================
'=
'================================================================
Declare Sub AnimeSetSelect edecl ()
Sub AnimeSetSelect()
    Var AnimInfo As tagANIMATIONINFO
    Var Ret As Long

    'アニメーション情報の構造体を初期化
    AnimInfo.cbSize = Len(AnimInfo)

    '最小化時のアニメーションのオンオフを指定
    AnimInfo.iMinAnimate = AnimFlag

    '最小化時などのアニメーションの有効無効を取得
    Ret = Api_SystemParametersInfo(SPI_SETANIMATION, Len(AnimInfo), AnimInfo, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE)
End Sub

'================================================================
'=
'================================================================
Declare Sub Radio1_on edecl ()
Sub Radio1_on()
    AnimFlag = 0
    AnimeSetSelect
End Sub

'================================================================
'=
'================================================================
Declare Sub Radio2_on edecl ()
Sub Radio2_on()
    AnimFlag = 1
    AnimeSetSelect
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End