Что нового

[Окна, Диалоги] иконка в выпадающем меню

johnmarshall

Осваивающий
Сообщения
198
Репутация
38
добрый день!
такая ситуация:

пытаюсь в выпадающем меню нарисовать иконку. не получается.
есть и 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

topicsolved.gif
тема решена: GUICtrlMenuEx UDF (Standard Menu With Icon)
 

Вложения

  • 00022.gif
    00022.gif
    612 байт · Просмотры: 62
  • 00022.zip
    554 байт · Просмотры: 4
Верх