johnmarshall
Осваивающий
- Сообщения
- 198
- Репутация
- 38
добрый день!
такая ситуация:
пытаюсь в выпадающем меню нарисовать иконку. не получается.
есть и gif и ico не один не отображается.
помогите, пожалуйста.
тема решена: GUICtrlMenuEx UDF (Standard Menu With Icon)
такая ситуация:
пытаюсь в выпадающем меню нарисовать иконку. не получается.
есть и gif и ico не один не отображается.
помогите, пожалуйста.
Код:
#cs ------------------------------------------------------------------------
Версия AutoIt: 3.3.8.1
Автор: myName
Описание: Шаблон программы на языке AutoIt
#ce ------------------------------------------------------------------------
; Код программы
#include <GuiMenu.au3>
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <GuiImageList.au3>
Global Enum $idOpen = 1000, $idSave, $idInfo
Global $hGUI, $hImage
Global $hImagel
_Main()
Func _Main()
; Create GUI
_GDIPlus_StartUp()
$hImagel = _GUIImageList_Create(11, 11)
_GUIImageList_AddBitmap($hImagel, @ScriptDir & "\00022.gif")
$hGUI = GUICreate("Menu", 400, 300)
GUISetState()
; Register message handlers
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()
EndFunc ;==>_Main
; Handle WM_COMMAND messages
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $ilParam
Switch $iwParam
Case $idOpen
_WinAPI_ShowMsg("Open")
Case $idSave
_WinAPI_ShowMsg("Save")
Case $idInfo
_WinAPI_ShowMsg("Info")
EndSwitch
EndFunc ;==>WM_COMMAND
; Handle WM_CONTEXTMENU messages
Func WM_CONTEXTMENU($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $ilParam
Local $hMenu
$hBmp1 = _WinAPI_CreateSolidBitmap($hGUI, 0x00FF00, 11,11)
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\00022.ico")
$hBmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hBmp2 = _WinAPI_CreateCompatibleBitmap($hBmp, 11,11)
$im = _GUIImageList_GetIcon($hImagel, 0)
$hMenu = _GUICtrlMenu_CreatePopup()
_GUICtrlMenu_InsertMenuItem($hMenu, 0, "Open", $idOpen)
_GUICtrlMenu_SetItemBitmaps($hMenu, 0, $hBmp1, $hBmp1)
_GUICtrlMenu_InsertMenuItem($hMenu, 1, "Save", $idSave)
;_GUICtrlMenu_SetItemBitmaps($hMenu, 1, $hBmp2, $hBmp2)
_GUICtrlMenu_SetItemBitmaps($hMenu, 1, $im, $im)
;_GUIImageList_GetIcon($hImage, 1)
;_GUICtrlMenu_SetItemBmp($hMenu, 1,$hBmp1)
_GUICtrlMenu_InsertMenuItem($hMenu, 3, "", 0)
_GUICtrlMenu_InsertMenuItem($hMenu, 3, "Info", $idInfo)
_GUICtrlMenu_TrackPopupMenu($hMenu, $iwParam)
_GUICtrlMenu_DestroyMenu($hMenu)
Return True
EndFunc ;==>WM_CONTEXTMENU