打印本文 打印本文  关闭窗口 关闭窗口  
ACCESS更改系统和窗体的图标
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 16:10:34  文章录入:杜斌  责任编辑:杜斌

背景:

1.在MDB文件的相同文件夹下放上一个图片文件,假定文件名为ico.ico。

2.有一个窗体frmOpen,并设为启动窗体。

在窗体frmOpen的打开事件中写代码:

Private Sub Form_Open(Cancel As Integer)
'更改窗体图标
    SetFormIcon Me.hWnd, CurrentProject.Path & "\ico.ico"
    '更改系统标题及图标
    Dim intX As Integer
    Const DB_Text As Long = 10
    intX = AddAppProperty("AppTitle", DB_Text, "XXX系统")
    intX = AddAppProperty("AppIcon", DB_Text, CurrentProject.Path & "\ico.ico")
    Application.RefreshTitleBar
End Sub

在模块中写代码:

Option Explicit

Declare Function LoadImage Lib "User32" Alias "LoadImageA" (ByVal hInst As Long, _
                                                            ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, _
                                                            ByVal un2 As Long) As Long
Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, _
                                                                ByVal wMsg As Long, ByVal wparam As Long, lparam As Any) As Long

Const WM_GETICON = &H7F
Const WM_SETICON = &H80
Const ICON_SMALL = 0
Const ICON_BIG = 1
Const IMAGE_BITMAP = 0
Const IMAGE_ICON = 1
Const IMAGE_CURSOR = 2
Const IMAGE_ENHMETAFILE = 3
Const LR_DEFAULTCOLOR = &H0
Const LR_MONOCHROME = &H1
Const LR_COLOR = &H2
Const LR_COPYRETURNORG = &H4
Const LR_COPYDeleteORG = &H8
Const LR_LOADFROMFILE = &H10
Const LR_LOADTRANSPARENT = &H20
Const LR_DEFAULTSIZE = &H40
Const LR_LOADMAP3DCOLORS = &H1000
Const LR_CreateDIBHeader = &H2000
Const LR_COPYFROMRESOURCE = &H4000
Const LR_SHARED = &H8000

Function SetFormIcon(hWnd As Long, IconPath As String) As Boolean
    On Error GoTo Exit_err
    Dim hIcon As Long
    If Dir(IconPath) = "" Then Exit Function
    hIcon = LoadImage(0&, IconPath, IMAGE_ICON, 16, 16, LR_LOADFROMFILE)
    If hIcon <> 0 Then
        Call SendMessage(hWnd, WM_SETICON, 0, ByVal hIcon)
        SetFormIcon = True
    Else
        End
    End If
Exit_err:
    Exit Function
End Function

Function AddAppProperty(strName As String, varType As Variant, varvalue As Variant) As Integer
    Dim dbs As Object, prp As Variant
    Const conPropNotFoundError = 3270
    Set dbs = CurrentDb
    On Error GoTo AddProp_Err
    dbs.Properties(strName) = varvalue
    AddAppProperty = True
AddProp_Bye:
    Exit Function
AddProp_Err:
    If ERR = conPropNotFoundError Then
        Set prp = dbs.CreateProperty(strName, varType, varvalue)
        dbs.Properties.Append prp
        Resume
    Else
        AddAppProperty = False
        Resume AddProp_Bye
    End If
End Function

打印本文 打印本文  关闭窗口 关闭窗口