Je viens de faire un petit proof of concept d'une barre de menu dans une fenêtre afin d'y afficher des icônes en ayant arrangé un exemple trouvé sur le net.
Code : Tout sélectionner
#pragma compile(Icon, .\ICO\POW10.ico)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <Constants.au3>
#include <GUIConstants.au3>
#include <GUIMenu.au3>
#include <GDIPlus.au3>
#RequireAdmin
Opt ("GUIOnEventMode", 1)
Global $StopScript = False
#Region ### START Koda GUI section ###
Global $Form1 = GUICreate("Form1", 260, 200, 192, 124)
Global $MenuItemFile = GUICtrlCreateMenu("&Fichier")
Global $MenuItemSystemInfo = GUICtrlCreateMenuItem("&Informations système", $MenuItemFile)
Global $MenuItemSeparation1 = GUICtrlCreateMenuItem("", $MenuItemFile, 2)
Global $MenuItemAllCheck = GUICtrlCreateMenuItem("Tout &coher", $MenuItemFile)
Global $MenuItemAllUncheck = GUICtrlCreateMenuItem("Tout &décocher", $MenuItemFile)
Global $MenuItemSeparation2 = GUICtrlCreateMenuItem("", $MenuItemFile, 5)
Global $MenuItemExit = GUICtrlCreateMenuItem("&Quitter", $MenuItemFile)
Global $MenuItemHelp = GUICtrlCreateMenu("&?")
Global $MenuItemAbout = GUICtrlCreateMenuItem("A &Propos", $MenuItemHelp)
_GDIPlus_Startup()
Global $IconSystemInfo = _WinAPI_LoadImage(2, ".\ICO\InfoSys.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)
Global $IconAllCheck = _WinAPI_LoadImage(2, ".\ICO\Check.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)
Global $IconAllUnCheck = _WinAPI_LoadImage(2, ".\ICO\Uncheck.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)
Global $IconExit = _WinAPI_LoadImage(2, ".\ICO\Exit.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)
Global $IconAbout = _WinAPI_LoadImage(2, ".\ICO\About.ico", $IMAGE_ICON, 16, 16, $LR_LOADFROMFILE)
Global $BitmapSystemInfo = _GDIPlus_BitmapCreateFromHICON($IconSystemInfo)
Global $BitmapAllCheck = _GDIPlus_BitmapCreateFromHICON($IconAllCheck)
Global $BitmapAllUnCheck = _GDIPlus_BitmapCreateFromHICON($IconAllUnCheck)
Global $BitmapExit = _GDIPlus_BitmapCreateFromHICON($IconExit)
Global $BitmapAbout = _GDIPlus_BitmapCreateFromHICON($IconAbout)
Global $GDIBitmapSystemInfo = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapSystemInfo)
Global $GDIBitmapAllCheck = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapAllCheck)
Global $GDIBitmapAllUnCheck = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapAllUnCheck)
Global $GDIBitmapExit = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapExit)
Global $GDIBitmapAbout = _GDIPlus_BitmapCreateHBITMAPFromBitmap($BitmapAbout)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 0, $GDIBitmapSystemInfo)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 2, $GDIBitmapAllCheck)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 3, $GDIBitmapAllUnCheck)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemFile), 5, $GDIBitmapExit)
_GUICtrlMenu_SetItemBmp(GUICtrlGetHandle($MenuItemHelp), 0, $GDIBitmapAbout)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
#Region GUI2
Global $Form2 = GUICreate("Form2", 200, 100)
GUISetState(@SW_HIDE)
#EndRegion GUI2
GUISetOnEvent ($GUI_EVENT_CLOSE, "STOP", $Form1)
GUISetOnEvent ($GUI_EVENT_CLOSE, "CLOSEINFOSYS", $Form2)
GUICtrlSetOnEvent ($MenuItemExit, "STOP")
GUICtrlSetOnEvent ($MenuItemSystemInfo, "OPENINFOSYS")
While Not $StopScript
Sleep (100)
WEnd
Func STOP()
_GDIPlus_BitmapDispose($BitmapSystemInfo)
_GDIPlus_BitmapDispose($BitmapAllCheck)
_GDIPlus_BitmapDispose($BitmapAllUnCheck)
_GDIPlus_BitmapDispose($BitmapExit)
_GDIPlus_BitmapDispose($BitmapAbout)
_WinAPI_DeleteObject($GDIBitmapSystemInfo)
_WinAPI_DeleteObject($GDIBitmapAllCheck)
_WinAPI_DeleteObject($GDIBitmapAllUnCheck)
_WinAPI_DeleteObject($GDIBitmapExit)
_WinAPI_DeleteObject($GDIBitmapAbout)
_WinAPI_DestroyIcon($IconSystemInfo)
_WinAPI_DestroyIcon($IconAllCheck)
_WinAPI_DestroyIcon($IconAllUnCheck)
_WinAPI_DestroyIcon($IconExit)
_WinAPI_DestroyIcon($IconAbout)
_GDIPlus_Shutdown()
$StopScript = True
EndFunc
Func OPENINFOSYS()
GUISetState (@SW_SHOW, $Form2)
EndFunc
Func CLOSEINFOSYS()
GUISetState (@SW_HIDE, $Form2)
EndFunc
Avec la méthode précédente, certain de mes icônes sont comme "baveux" alors que les fichiers "ico" parraissent propre (question de conversion en bitmap ?)
Merci d'avance.