視覚スタイル(VisualStyle)を切り替える          <TOP>


FindWindow クラス名またはキャプションを与えてウィンドウのハンドルを取得
IsThemeActive ビジュアルスタイルが有効か判別
SetWindowTheme ウィンドウのビジュアルテーマを設定
 

 

'================================================================
'= 視覚スタイル(VisualStyle)を切り替える
'=    (SetWindowTheme.bas)
'================================================================
#include "Windows.bi"

' クラス名またはキャプションを与えてウィンドウのハンドルを取得
Declare Function Api_FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)

' ビジュアルスタイルが有効か判別
Declare Function Api_IsThemeActive& Lib "uxtheme" Alias "IsThemeActive" ()

' ウィンドウのビジュアルテーマを設定
Declare Function Api_SetWindowTheme& Lib "uxtheme" Alias "SetWindowTheme" (ByVal hWnd&, ByVal pszSubAppName&, ByVal pszSubIdList&)

Var Shared Button1 As Object

Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var hWnd As Long
    Static Flag As Integer
    Var Ret As Long
     
    hWnd = Api_FindWindow(ByVal 0, "SetWindowTheme")

    If Api_IsThemeActive <> 0 Then
        Flag = Not Flag

        If Flag = 0 Then
            Ret = Api_SetWindowTheme(hWnd, 0, 0)
        Else
            Ret = Api_SetWindowTheme(hWnd, StrAdr("" & Chr$(0)), StrAdr("" & Chr$(0)))
        End If
    End If
End Sub

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