Creates a 32 bits-per-pixel bitmap from the specified icon
#include <WinAPIGdi.au3>
_WinAPI_Create32BitHBITMAP ( $hIcon [, $bDib = False [, $bDelete = False]] )
$hIcon | Handle to the source icon. |
$bDib | [optional] Specifies whether to create device-independent (DIB) or device-dependent (DDB) bitmap, valid values: True - Creates DIB. False - Creates DDB (Default). |
$bDelete | [optional] Specifies whether to delete the icon after the function is successful, valid values: True - Icon will be deleted if the function succeeds. False - Do not delete, you must release the icon when you are finished using it (Default). |
Success: | Handle to the created bitmap. |
Failure: | 0 and sets the @error flag to non-zero. |
The _WinAPI_Create32BitHBITMAP() creates a 32 bits-per-pixel bitmap with alpha chanel (if possible) from the icons with any color depth.
The function internally converts the specified icon to the 32 bits-per-pixel icon.
When you are finished using the bitmap, destroy it using the _WinAPI_DeleteObject() function.
#NoTrayIcon
#include <GUIMenu.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIShellEx.au3>
#include <WinAPISys.au3>
Opt('TrayMenuMode', 3)
If Number(_WinAPI_GetVersion()) < 6.0 Then
MsgBox(($MB_ICONERROR + $MB_SYSTEMMODAL), 'Error', 'Require Windows Vista or later.')
Exit
EndIf
Local $hMenu = TrayItemGetHandle(0)
Local $iOptions = TrayCreateItem('Options')
TrayCreateItem('')
Local $idExit = TrayCreateItem('Exit')
_GUICtrlMenu_SetItemBmp($hMenu, 0, _WinAPI_Create32BitHBITMAP(_WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', 207, 16, 16), 1, 1))
_GUICtrlMenu_SetItemBmp($hMenu, 2, _WinAPI_Create32BitHBITMAP(_WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', 131, 16, 16), 1, 1))
TraySetState()
Do
Until TrayGetMsg() = $idExit