Что нового

Как вставить изображение на фон кнопки?

Belfigor

Модератор
Локальный модератор
Сообщения
3,602
Репутация
941
Собственно вопрос, как поставить на фон кнопки картинку? И можно ли это вообще?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Belfigor
Попробуйте так, у меня работает:
Код:
#Include <GuiButton.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiImageList.au3>

$hImagebtn = _GUIImageList_Create(150, 100)
$hH1 = _GUIImageList_AddBitmap($hImagebtn, @ScriptDir & "\Resources\1.bmp")
$hH2 = _GUIImageList_AddBitmap($hImagebtn, @ScriptDir & "\Resources\2.bmp")
$hH3 = _GUIImageList_AddBitmap($hImagebtn, @ScriptDir & "\Resources\3.bmp")
$hH4 = _GUIImageList_AddBitmap($hImagebtn, @ScriptDir & "\Resources\4.bmp")
$hH5 = _GUIImageList_AddBitmap($hImagebtn, @ScriptDir & "\Resources\5.bmp")

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 350, 200, 100, 100)
$Button1 = GUICtrlCreateButton("Супер кнопка", 100, 50, 150, 100)
GUICtrlSetFont(-1, 16, 600, 2, 'Times New Roman')
_GUICtrlButton_SetImageList(-1, $hImagebtn, 4)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			GUICtrlSetState($Button1, $GUI_DISABLE)
			Sleep(2000)
			GUICtrlSetState($Button1, $GUI_ENABLE)
			MsgBox(0, '', 'Супер кнопка')
	EndSwitch
WEnd
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Cобственно, в оф. справке есть примеры. Первый способ - GUICtrlSetImage(), второй - _GUICtrlButton_SetImageList().
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,602
Репутация
941
Спасибо, я просто искал не по тем запросам :(
 

MiXa

Новичок
Сообщения
8
Репутация
0
Извините что поднимаю тему, а как на фон добавить не bmp а png изображение?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
MiXa [?]
а как на фон добавить не bmp а png изображение?
Код:
;...
$hImageList = _GUIImageList_Create(24, 24, 5)
_GDIPlus_Startup()

$h_Image = _GDIPlus_BitmapCreateFromFile(@ScriptDir & '\1_file.png')
$h_Bitmap =_GDIPlus_BitmapCreateHBITMAPFromBitmap($h_Image)
_GUIImageList_Add($hImageList, $h_Bitmap)
_GDIPlus_ImageDispose($h_Image)
_WinAPI_DeleteObject($h_Bitmap)
;и так 5 раз
_GDIPlus_Shutdown()
;...
И см. пример выше.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
MiXa,
Пример выше есть.
 
Верх