Option Compare Database
Option Explicit

'*********** Code Start ********
'Code courtesy of
'Klaus H. Probst
'
'// Place all this in a module
Public 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
  
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  
  
Public Const WM_GETICON = &H7F
Public Const WM_SETICON = &H80
Public Const ICON_SMALL = 0
Public Const ICON_BIG = 1

'// LoadImage() image types
Public Const IMAGE_BITMAP = 0
Public Const IMAGE_ICON = 1
Public Const IMAGE_CURSOR = 2
Public Const IMAGE_ENHMETAFILE = 3

'// LoadImage() flags
Public Const LR_DEFAULTCOLOR = &H0
Public Const LR_MONOCHROME = &H1
Public Const LR_COLOR = &H2
Public Const LR_COPYRETURNORG = &H4
Public Const LR_COPYDELETEORG = &H8
Public Const LR_LOADFROMFILE = &H10
Public Const LR_LOADTRANSPARENT = &H20
Public Const LR_DEFAULTSIZE = &H40
Public Const LR_LOADMAP3DCOLORS = &H1000
Public Const LR_CREATEDIBHeader = &H2000
Public Const LR_COPYFROMRESOURCE = &H4000
Public Const LR_SHARED = &H8000

Public Function SetFormIcon(hwnd As Long, IconPath As String) As Boolean
Dim hIcon As Long

   hIcon = LoadImage(0&, CurrentProject.Path & "\" & IconPath, IMAGE_ICON, 16, 16, LR_LOADFROMFILE)

   '// wParam = 0; Setting small icon. wParam = 1; setting large icon
   If hIcon <> 0 Then
      Call SendMessage(hwnd, WM_SETICON, 0, ByVal hIcon)
      SetFormIcon = True
   End If
End Function

posted on 2005-01-19 09:39  James Wong   阅读(381)  评论(0编辑  收藏  举报