注意判断系统平台,只有xp,2003有uxtheme.dll文件,也就是说Private Sub Form_Initialize()的代码中要判断当前系统平台,如果不是xp,2003,就不要执行DeactivateWindowTheme。如果偷懒不想判断系统平台,也可以在Private Sub Form_Initialize()后面的第一句写上On Error Resume Next,不过这不是好习惯。Option Explicit Private Declare Sub InitCommonControls Lib "comctl32" () Private Declare Function ActivateWindowTheme Lib "uxtheme" Alias "SetWindowTheme" (ByVal hwnd As Long, _ Optional ByVal pszSubAppName As Long = 0, _ Optional ByVal pszSubIdList As Long = 0 _ ) As Long Private Declare Function DeactivateWindowTheme Lib "uxtheme" Alias "SetWindowTheme" (ByVal hwnd As Long, _ Optional ByRef pszSubAppName As String = " ", _ Optional ByRef pszSubIdList As String = " " _ ) As LongPrivate Sub Form_Initialize() 'On Error Resume Next Call InitCommonControls Call DeactivateWindowTheme(Me.hwnd) '恢复 'Call ActivateWindowTheme(Me.hwnd) End Sub
Private Declare Sub InitCommonControls Lib "comctl32" ()
Private Declare Function ActivateWindowTheme Lib "uxtheme" Alias "SetWindowTheme" (ByVal hwnd As Long, _
Optional ByVal pszSubAppName As Long = 0, _
Optional ByVal pszSubIdList As Long = 0 _
) As Long
Private Declare Function DeactivateWindowTheme Lib "uxtheme" Alias "SetWindowTheme" (ByVal hwnd As Long, _
Optional ByRef pszSubAppName As String = " ", _
Optional ByRef pszSubIdList As String = " " _
) As LongPrivate Sub Form_Initialize()
'On Error Resume Next
Call InitCommonControls
Call DeactivateWindowTheme(Me.hwnd)
'恢复
'Call ActivateWindowTheme(Me.hwnd)
End Sub