'------------------------------------------------------------------------------ ' This is the "Icon.inc" include file for PBWin9 ' It contains routines to display icons in controls or dialog caption bar ' Prototypes: ' DECLARE SUB DialogSetIconFile(BYVAL hDlg AS DWORD, BYVAL icoF AS STRING, BYVAL icoC AS LONG) ' DECLARE SUB ImgbuttonSetIconFile(BYVAL hDlg AS DWORD, BYVAL iCtl AS LONG, _ ' BYVAL icoFile AS STRING, BYVAL icoW AS LONG, BYVAL icoH AS LONG ' DECLARE SUB GraphicDrawIconDll(BYVAL hDlg AS DWORD, BYVAL iCtl AS LONG, _ ' BYVAL dllName AS STRING, BYVAL dllCnt AS LONG, _ ' BYVAL x AS LONG, BYVAL y AS LONG, BYVAL w AS LONG, BYVAL h AS LONG) ' DECLARE SUB GraphicDrawIconFile(BYVAL hDlg AS DWORD, BYVAL iCtl AS LONG, BYVAL icoFile AS STRING, _ ' BYVAL x AS LONG, BYVAL y AS LONG, BYVAL w AS LONG, BYVAL h AS LONG) '------------------------------------------------------------------------------ SUB DialogSetIconFile(BYVAL hDlg AS DWORD, BYVAL icoF AS STRING, BYVAL icoC AS LONG) STATIC hIconBig AS DWORD STATIC hIconSmall AS DWORD IF hIconBig THEN DestroyIcon(hIconBig) IF hIconSmall THEN DestroyIcon(hIconSmall) ExtractIconEx((icoF), icoC, BYVAL VARPTR(hIconBig), BYVAL VARPTR(hIconSmall), 1) SetClassLong(hDlg, %GCL_HICONSM, hIconSmall) SetClassLong(hDlg, %GCL_HICON, hIconBig) SendMessage(hDlg, %WM_SETICON, %ICON_SMALL, hIconSmall) SendMessage(hDlg, %WM_SETICON, %ICON_BIG, hIconBig) END SUB '------------------------------------------------------------------------------ SUB ImgbuttonSetIconFile(BYVAL hDlg AS DWORD, BYVAL iCtl AS LONG, _ BYVAL icoFile AS STRING, BYVAL icoW AS LONG, BYVAL icoH AS LONG) LOCAL hIcon AS DWORD hIcon = LoadImage(0, BYVAL STRPTR(icoFile), %IMAGE_ICON, icoW, icoH, %LR_LOADFROMFILE) SendMessage(GetDlgItem(hDlg,iCtl), %BM_SETIMAGE, %IMAGE_ICON, hIcon) END SUB '------------------------------------------------------------------------------ SUB GraphicDrawIconDll(BYVAL hDlg AS DWORD, BYVAL iCtl AS LONG, _ BYVAL dllName AS STRING, BYVAL dllCnt AS LONG, _ BYVAL x AS LONG, BYVAL y AS LONG, BYVAL w AS LONG, BYVAL h AS LONG) LOCAL hLst AS DWORD LOCAL hIco AS DWORD IMAGELIST NEW ICON w, h, 32, 1 TO hLst hIco = EXTRACTICON(GetModuleHandle(""), (dllName), dllCnt) IMAGELIST ADD ICON hLst, hIco GRAPHIC ATTACH hDlg, iCtl GRAPHIC IMAGELIST (x,y), hLst, 1, 0, %ILD_TRANSPARENT END SUB '------------------------------------------------------------------------------ SUB GraphicDrawIconFile(BYVAL hDlg AS DWORD, BYVAL iCtl AS LONG, BYVAL icoFile AS STRING, _ BYVAL x AS LONG, BYVAL y AS LONG, BYVAL w AS LONG, BYVAL h AS LONG) LOCAL hLst AS DWORD LOCAL hIco AS DWORD IMAGELIST NEW ICON w, h, 32, 1 TO hLst hIco = LOADIMAGE(0, icoFile+CHR$(0), %IMAGE_ICON, w, h, %LR_LOADFROMFILE) IMAGELIST ADD ICON hLst, hIco GRAPHIC ATTACH hDlg, iCtl : GRAPHIC CLEAR GRAPHIC IMAGELIST (x,y), hLst, 1, 0, %ILD_NORMAL END SUB '------------------------------------------------------------------------------